{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import pymysql\n",
    "from sqlalchemy import create_engine\n",
    "import datetime"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 创造链接"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 创造pymysql链接\n",
    "conn1 = pymysql.Connect(\n",
    "    host = 'localhost',\n",
    "    port = 3306,\n",
    "    user = 'root',\n",
    "    password = 'Fgr960523~',\n",
    "    database = 'managing',\n",
    "    charset = 'utf8',\n",
    ")\n",
    "\n",
    "# sqlalchemy的数据库链接\n",
    "conn2 = create_engine('mysql+pymysql://root:Fgr960523~@localhost:3306/managing?charset=utf8')\n",
    "#问题：connection1和2的使用场景有何区别？为什么我把后面使用conn2的地方替换成conn1就出现了空白的结果呢？"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 建表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# SQL语句\n",
    "'''\n",
    "create table status( \n",
    "    id int primary key auto_increment, \n",
    "    content varchar(20)\n",
    ");\n",
    "\n",
    "create table category(\n",
    "    id int primary key auto_increment,\n",
    "    content varchar(100) not null\n",
    ");\n",
    "\n",
    "create table customer (\n",
    "    id int primary key auto_increment,\n",
    "    tel varchar(32),\n",
    "    category_id int,\n",
    "    constraint c1 foreign key (category_id) references category(id) on delete cascade\n",
    ");\n",
    "\n",
    "create table salesstaff(\n",
    "    id int primary key auto_increment,\n",
    "    name varchar(16),\n",
    "    account varchar(16) not null unique ,\n",
    "    password varchar(32) not null\n",
    ");\n",
    "\n",
    "create table mission(\n",
    "    id int primary key auto_increment,\n",
    "    customer_id int not null ,\n",
    "    salesstaff_id int not null,\n",
    "    createDate date not null,\n",
    "    status_id int not null,\n",
    "    constraint c2 foreign key (customer_id) references customer(id) on delete cascade ,\n",
    "    constraint c3 foreign key (salesstaff_id) references salesstaff(id) on delete cascade ,\n",
    "    constraint c4 foreign key (status_id) references status(id) on delete cascade\n",
    "\n",
    ");\n",
    "'''\n",
    "\n",
    "sql_status = 'create table status( id int primary key auto_increment, content varchar(20));'\n",
    "sql_category = 'create table category( id int primary key auto_increment,content varchar(100) not null);'\n",
    "sql_customer = 'create table customer ( id int primary key auto_increment, tel varchar(32), category_id int, constraint c1 foreign key (category_id) references category(id) on delete cascade);'\n",
    "sql_salesstaff = 'create table salesstaff( id int primary key auto_increment, name varchar(16), account varchar(16) not null unique , password varchar(32) not null );'\n",
    "sql_mission = 'create table mission( id int primary key auto_increment, customer_id int not null , salesstaff_id int not null, createDate date not null, status_id int not null, constraint c2 foreign key (customer_id) references customer(id) on delete cascade , constraint c3 foreign key (salesstaff_id) references salesstaff(id) on delete cascade , constraint c4 foreign key (status_id) references status(id) on delete cascade );'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 创建表结构\n",
    "\n",
    "cs = conn1.cursor()\n",
    "cs.execute(sql_status)\n",
    "cs.execute(sql_category)\n",
    "cs.execute(sql_customer)\n",
    "cs.execute(sql_salesstaff)\n",
    "cs.execute(sql_mission)\n",
    "conn1.commit()\n",
    "cs.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. 销售信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>account</th>\n",
       "      <th>password</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>张艳</td>\n",
       "      <td>876024831567</td>\n",
       "      <td>b17b1ae95299f365d33f6f28766e34d8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>李勇</td>\n",
       "      <td>156436662455</td>\n",
       "      <td>cf6088de6b5a5201db2c5d8449efdb15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>王平</td>\n",
       "      <td>260460121666</td>\n",
       "      <td>67768d6df4fc05b7d74c8b59e17a4ccf</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>李强</td>\n",
       "      <td>775550594765</td>\n",
       "      <td>9b7a25dd2c8b79b8bd9c685d6858b223</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>王芳</td>\n",
       "      <td>965918890050</td>\n",
       "      <td>17e9eba3e021cd4f4412a31dfd1c4f98</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  name       account                          password\n",
       "0   张艳  876024831567  b17b1ae95299f365d33f6f28766e34d8\n",
       "1   李勇  156436662455  cf6088de6b5a5201db2c5d8449efdb15\n",
       "2   王平  260460121666  67768d6df4fc05b7d74c8b59e17a4ccf\n",
       "3   李强  775550594765  9b7a25dd2c8b79b8bd9c685d6858b223\n",
       "4   王芳  965918890050  17e9eba3e021cd4f4412a31dfd1c4f98"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取销售表\n",
    "df_salesstaff = pd.read_excel(\n",
    "    '/Users/fiona/Desktop/mysql001/数据/销售人员.xlsx',\n",
    "    sheet_name='销售信息',\n",
    ")\n",
    "df_salesstaff.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_salesstaff['name'] = df_salesstaff['name'].apply(\n",
    "    lambda name:name.strip()\n",
    "    #移除字符串头尾空格\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 写入数据\n",
    "df_salesstaff.to_sql(\n",
    "    'salesstaff',         # 表名字\n",
    "    conn2,                # mysql链接\n",
    "    index=False,          # 写入数据的时候，不使用index\n",
    "    if_exists='append'    # 如果表结构存在，则添加\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.种类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['人事-行政-后勤',\n",
       " '保健按摩',\n",
       " '保险',\n",
       " '其他职位',\n",
       " '农-林-牧-渔业',\n",
       " '制药-生物工程',\n",
       " '化工',\n",
       " '医院-医疗-护理',\n",
       " '司机-交通服务',\n",
       " '商超零工',\n",
       " '实习生-培训生-储备干部',\n",
       " '客服',\n",
       " '家政保洁-安保',\n",
       " '工厂零工',\n",
       " '市场-媒介-公关',\n",
       " '广告-会展-咨询',\n",
       " '建筑',\n",
       " '影视-娱乐-休闲',\n",
       " '志愿者-社会工作者',\n",
       " '快递-餐饮配送',\n",
       " '房产中介',\n",
       " '政府-非营利机构',\n",
       " '教育培训',\n",
       " '旅游',\n",
       " '日结零工',\n",
       " '普工-技工',\n",
       " '暑期零工',\n",
       " '服装-纺织-食品',\n",
       " '机械-仪器仪表',\n",
       " '汽车制造-服务',\n",
       " '法律',\n",
       " '淘宝职位',\n",
       " '物业管理',\n",
       " '物流-仓储',\n",
       " '环保-能源',\n",
       " '生产管理-研发',\n",
       " '电子-电气',\n",
       " '短期零工',\n",
       " '编辑-出版-印刷',\n",
       " '美容-美发',\n",
       " '美术-设计-创意',\n",
       " '翻译',\n",
       " '职业培训',\n",
       " '计算机-互联网-通信',\n",
       " '财务-审计-统计',\n",
       " '质控-安防',\n",
       " '贸易-采购',\n",
       " '超市-百货-零售',\n",
       " '运动健身',\n",
       " '酒店',\n",
       " '金融-银行-证券-投资',\n",
       " '销售11',\n",
       " '餐饮',\n",
       " '餐饮零工',\n",
       " '高级管理']"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取客户信息表中的全部sheet_names，sheet_names其实为标签名\n",
    "categorys = pd.ExcelFile('/Users/fiona/Desktop/mysql001/数据/顾客信息.xlsx').sheet_names\n",
    "categorys"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'insert into category (content) values (\"人事-行政-后勤\"),(\"保健按摩\"),(\"保险\"),(\"其他职位\"),(\"农-林-牧-渔业\"),(\"制药-生物工程\"),(\"化工\"),(\"医院-医疗-护理\"),(\"司机-交通服务\"),(\"商超零工\"),(\"实习生-培训生-储备干部\"),(\"客服\"),(\"家政保洁-安保\"),(\"工厂零工\"),(\"市场-媒介-公关\"),(\"广告-会展-咨询\"),(\"建筑\"),(\"影视-娱乐-休闲\"),(\"志愿者-社会工作者\"),(\"快递-餐饮配送\"),(\"房产中介\"),(\"政府-非营利机构\"),(\"教育培训\"),(\"旅游\"),(\"日结零工\"),(\"普工-技工\"),(\"暑期零工\"),(\"服装-纺织-食品\"),(\"机械-仪器仪表\"),(\"汽车制造-服务\"),(\"法律\"),(\"淘宝职位\"),(\"物业管理\"),(\"物流-仓储\"),(\"环保-能源\"),(\"生产管理-研发\"),(\"电子-电气\"),(\"短期零工\"),(\"编辑-出版-印刷\"),(\"美容-美发\"),(\"美术-设计-创意\"),(\"翻译\"),(\"职业培训\"),(\"计算机-互联网-通信\"),(\"财务-审计-统计\"),(\"质控-安防\"),(\"贸易-采购\"),(\"超市-百货-零售\"),(\"运动健身\"),(\"酒店\"),(\"金融-银行-证券-投资\"),(\"销售11\"),(\"餐饮\"),(\"餐饮零工\"),(\"高级管理\");'"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 构造SQL语句\n",
    "values = []\n",
    "for category in categorys:\n",
    "    values.append('(\"%s\")' % category)# 把category放在‘’内字符串中%s所在的位置\n",
    "sql = 'insert into category (content) values %s;' % ','.join(values)# 把，放在‘’内字符串中%s所在的位置\n",
    "sql"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['(\"人事-行政-后勤\")',\n",
       " '(\"保健按摩\")',\n",
       " '(\"保险\")',\n",
       " '(\"其他职位\")',\n",
       " '(\"农-林-牧-渔业\")',\n",
       " '(\"制药-生物工程\")',\n",
       " '(\"化工\")',\n",
       " '(\"医院-医疗-护理\")',\n",
       " '(\"司机-交通服务\")',\n",
       " '(\"商超零工\")',\n",
       " '(\"实习生-培训生-储备干部\")',\n",
       " '(\"客服\")',\n",
       " '(\"家政保洁-安保\")',\n",
       " '(\"工厂零工\")',\n",
       " '(\"市场-媒介-公关\")',\n",
       " '(\"广告-会展-咨询\")',\n",
       " '(\"建筑\")',\n",
       " '(\"影视-娱乐-休闲\")',\n",
       " '(\"志愿者-社会工作者\")',\n",
       " '(\"快递-餐饮配送\")',\n",
       " '(\"房产中介\")',\n",
       " '(\"政府-非营利机构\")',\n",
       " '(\"教育培训\")',\n",
       " '(\"旅游\")',\n",
       " '(\"日结零工\")',\n",
       " '(\"普工-技工\")',\n",
       " '(\"暑期零工\")',\n",
       " '(\"服装-纺织-食品\")',\n",
       " '(\"机械-仪器仪表\")',\n",
       " '(\"汽车制造-服务\")',\n",
       " '(\"法律\")',\n",
       " '(\"淘宝职位\")',\n",
       " '(\"物业管理\")',\n",
       " '(\"物流-仓储\")',\n",
       " '(\"环保-能源\")',\n",
       " '(\"生产管理-研发\")',\n",
       " '(\"电子-电气\")',\n",
       " '(\"短期零工\")',\n",
       " '(\"编辑-出版-印刷\")',\n",
       " '(\"美容-美发\")',\n",
       " '(\"美术-设计-创意\")',\n",
       " '(\"翻译\")',\n",
       " '(\"职业培训\")',\n",
       " '(\"计算机-互联网-通信\")',\n",
       " '(\"财务-审计-统计\")',\n",
       " '(\"质控-安防\")',\n",
       " '(\"贸易-采购\")',\n",
       " '(\"超市-百货-零售\")',\n",
       " '(\"运动健身\")',\n",
       " '(\"酒店\")',\n",
       " '(\"金融-银行-证券-投资\")',\n",
       " '(\"销售11\")',\n",
       " '(\"餐饮\")',\n",
       " '(\"餐饮零工\")',\n",
       " '(\"高级管理\")']"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 执行SQL语句\n",
    "cs = conn1.cursor()\n",
    "cs.execute(sql)\n",
    "conn1.commit()\n",
    "cs.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6.顾客信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>手机号</th>\n",
       "      <th>种类</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>94a20c908ea398cefba903e2d6598ea2</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5abd29bae58e80cc2513b9aa0f3dd598</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>90875eb5b8fc1c84cf9a395f642ac092</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>05f8673bd351bdb9bf3f503013784da8</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>f4e507f349ac8455d8426db77c377636</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                手机号        种类\n",
       "0  94a20c908ea398cefba903e2d6598ea2  人事-行政-后勤\n",
       "1  5abd29bae58e80cc2513b9aa0f3dd598  人事-行政-后勤\n",
       "2  90875eb5b8fc1c84cf9a395f642ac092  人事-行政-后勤\n",
       "3  05f8673bd351bdb9bf3f503013784da8  人事-行政-后勤\n",
       "4  f4e507f349ac8455d8426db77c377636  人事-行政-后勤"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取顾客信息中的全部数据，因为有不同的sheet（不同种类）,所以格式为字典： {'sheet_name':dataframe}\n",
    "customer_pd_dict = pd.read_excel('/Users/fiona/Desktop/mysql001/数据/顾客信息.xlsx',sheet_name=None) \n",
    "# 给dataframe中每个key对应的部分（表格）添加‘种类’这一列，内容为key\n",
    "for key in customer_pd_dict.keys():\n",
    "    customer_pd_dict[key]['种类'] = key\n",
    "# 合并多个dataframe\n",
    "df_customer = pd.concat(\n",
    "    [customer_pd_dict[key] for key in customer_pd_dict.keys()],# 合并dataframe的每一张表，\n",
    "    axis=0, # 依据为：行合并\n",
    ")\n",
    "\n",
    "df_customer.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tel</th>\n",
       "      <th>category</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>94a20c908ea398cefba903e2d6598ea2</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5abd29bae58e80cc2513b9aa0f3dd598</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>90875eb5b8fc1c84cf9a395f642ac092</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>05f8673bd351bdb9bf3f503013784da8</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>f4e507f349ac8455d8426db77c377636</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                tel  category\n",
       "0  94a20c908ea398cefba903e2d6598ea2  人事-行政-后勤\n",
       "1  5abd29bae58e80cc2513b9aa0f3dd598  人事-行政-后勤\n",
       "2  90875eb5b8fc1c84cf9a395f642ac092  人事-行政-后勤\n",
       "3  05f8673bd351bdb9bf3f503013784da8  人事-行政-后勤\n",
       "4  f4e507f349ac8455d8426db77c377636  人事-行政-后勤"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 更改列名\n",
    "df_customer.columns = ['tel','category']\n",
    "df_customer.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>content</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>保健按摩</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>保险</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>其他职位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>农-林-牧-渔业</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>制药-生物工程</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>化工</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>医院-医疗-护理</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9</td>\n",
       "      <td>司机-交通服务</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>10</td>\n",
       "      <td>商超零工</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>11</td>\n",
       "      <td>实习生-培训生-储备干部</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>12</td>\n",
       "      <td>客服</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>13</td>\n",
       "      <td>家政保洁-安保</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>14</td>\n",
       "      <td>工厂零工</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>15</td>\n",
       "      <td>市场-媒介-公关</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>16</td>\n",
       "      <td>广告-会展-咨询</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>17</td>\n",
       "      <td>建筑</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>18</td>\n",
       "      <td>影视-娱乐-休闲</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>19</td>\n",
       "      <td>志愿者-社会工作者</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20</td>\n",
       "      <td>快递-餐饮配送</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>21</td>\n",
       "      <td>房产中介</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>22</td>\n",
       "      <td>政府-非营利机构</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>23</td>\n",
       "      <td>教育培训</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>24</td>\n",
       "      <td>旅游</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>25</td>\n",
       "      <td>日结零工</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>26</td>\n",
       "      <td>普工-技工</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>27</td>\n",
       "      <td>暑期零工</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>28</td>\n",
       "      <td>服装-纺织-食品</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>29</td>\n",
       "      <td>机械-仪器仪表</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>30</td>\n",
       "      <td>汽车制造-服务</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>31</td>\n",
       "      <td>法律</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>32</td>\n",
       "      <td>淘宝职位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>33</td>\n",
       "      <td>物业管理</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>34</td>\n",
       "      <td>物流-仓储</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>35</td>\n",
       "      <td>环保-能源</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>36</td>\n",
       "      <td>生产管理-研发</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>37</td>\n",
       "      <td>电子-电气</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>38</td>\n",
       "      <td>短期零工</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>39</td>\n",
       "      <td>编辑-出版-印刷</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>40</td>\n",
       "      <td>美容-美发</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>41</td>\n",
       "      <td>美术-设计-创意</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>42</td>\n",
       "      <td>翻译</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>43</td>\n",
       "      <td>职业培训</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>44</td>\n",
       "      <td>计算机-互联网-通信</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>45</td>\n",
       "      <td>财务-审计-统计</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>46</td>\n",
       "      <td>质控-安防</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>47</td>\n",
       "      <td>贸易-采购</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>48</td>\n",
       "      <td>超市-百货-零售</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>49</td>\n",
       "      <td>运动健身</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>50</td>\n",
       "      <td>酒店</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>51</td>\n",
       "      <td>金融-银行-证券-投资</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>52</td>\n",
       "      <td>销售11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>53</td>\n",
       "      <td>餐饮</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>54</td>\n",
       "      <td>餐饮零工</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>55</td>\n",
       "      <td>高级管理</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    id       content\n",
       "0    1      人事-行政-后勤\n",
       "1    2          保健按摩\n",
       "2    3            保险\n",
       "3    4          其他职位\n",
       "4    5      农-林-牧-渔业\n",
       "5    6       制药-生物工程\n",
       "6    7            化工\n",
       "7    8      医院-医疗-护理\n",
       "8    9       司机-交通服务\n",
       "9   10          商超零工\n",
       "10  11  实习生-培训生-储备干部\n",
       "11  12            客服\n",
       "12  13       家政保洁-安保\n",
       "13  14          工厂零工\n",
       "14  15      市场-媒介-公关\n",
       "15  16      广告-会展-咨询\n",
       "16  17            建筑\n",
       "17  18      影视-娱乐-休闲\n",
       "18  19     志愿者-社会工作者\n",
       "19  20       快递-餐饮配送\n",
       "20  21          房产中介\n",
       "21  22      政府-非营利机构\n",
       "22  23          教育培训\n",
       "23  24            旅游\n",
       "24  25          日结零工\n",
       "25  26         普工-技工\n",
       "26  27          暑期零工\n",
       "27  28      服装-纺织-食品\n",
       "28  29       机械-仪器仪表\n",
       "29  30       汽车制造-服务\n",
       "30  31            法律\n",
       "31  32          淘宝职位\n",
       "32  33          物业管理\n",
       "33  34         物流-仓储\n",
       "34  35         环保-能源\n",
       "35  36       生产管理-研发\n",
       "36  37         电子-电气\n",
       "37  38          短期零工\n",
       "38  39      编辑-出版-印刷\n",
       "39  40         美容-美发\n",
       "40  41      美术-设计-创意\n",
       "41  42            翻译\n",
       "42  43          职业培训\n",
       "43  44    计算机-互联网-通信\n",
       "44  45      财务-审计-统计\n",
       "45  46         质控-安防\n",
       "46  47         贸易-采购\n",
       "47  48      超市-百货-零售\n",
       "48  49          运动健身\n",
       "49  50            酒店\n",
       "50  51   金融-银行-证券-投资\n",
       "51  52          销售11\n",
       "52  53            餐饮\n",
       "53  54          餐饮零工\n",
       "54  55          高级管理"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    " #建立category到category_id的映射（通过connection1）\n",
    "df_category = pd.read_sql('select id,content from category;',conn1)\n",
    "df_category"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>content</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>人事-行政-后勤</th>\n",
       "      <td>1</td>\n",
       "      <td>人事-行政-后勤</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>保健按摩</th>\n",
       "      <td>2</td>\n",
       "      <td>保健按摩</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>保险</th>\n",
       "      <td>3</td>\n",
       "      <td>保险</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>其他职位</th>\n",
       "      <td>4</td>\n",
       "      <td>其他职位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>农-林-牧-渔业</th>\n",
       "      <td>5</td>\n",
       "      <td>农-林-牧-渔业</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          id   content\n",
       "人事-行政-后勤   1  人事-行政-后勤\n",
       "保健按摩       2      保健按摩\n",
       "保险         3        保险\n",
       "其他职位       4      其他职位\n",
       "农-林-牧-渔业   5  农-林-牧-渔业"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将content的值设置为index，因为这是我们想要转化为key的内容。to_dict()时index会变成key。\n",
    "df_category.index = df_category['content'].values\n",
    "df_category.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'人事-行政-后勤': 1,\n",
       " '保健按摩': 2,\n",
       " '保险': 3,\n",
       " '其他职位': 4,\n",
       " '农-林-牧-渔业': 5,\n",
       " '制药-生物工程': 6,\n",
       " '化工': 7,\n",
       " '医院-医疗-护理': 8,\n",
       " '司机-交通服务': 9,\n",
       " '商超零工': 10,\n",
       " '实习生-培训生-储备干部': 11,\n",
       " '客服': 12,\n",
       " '家政保洁-安保': 13,\n",
       " '工厂零工': 14,\n",
       " '市场-媒介-公关': 15,\n",
       " '广告-会展-咨询': 16,\n",
       " '建筑': 17,\n",
       " '影视-娱乐-休闲': 18,\n",
       " '志愿者-社会工作者': 19,\n",
       " '快递-餐饮配送': 20,\n",
       " '房产中介': 21,\n",
       " '政府-非营利机构': 22,\n",
       " '教育培训': 23,\n",
       " '旅游': 24,\n",
       " '日结零工': 25,\n",
       " '普工-技工': 26,\n",
       " '暑期零工': 27,\n",
       " '服装-纺织-食品': 28,\n",
       " '机械-仪器仪表': 29,\n",
       " '汽车制造-服务': 30,\n",
       " '法律': 31,\n",
       " '淘宝职位': 32,\n",
       " '物业管理': 33,\n",
       " '物流-仓储': 34,\n",
       " '环保-能源': 35,\n",
       " '生产管理-研发': 36,\n",
       " '电子-电气': 37,\n",
       " '短期零工': 38,\n",
       " '编辑-出版-印刷': 39,\n",
       " '美容-美发': 40,\n",
       " '美术-设计-创意': 41,\n",
       " '翻译': 42,\n",
       " '职业培训': 43,\n",
       " '计算机-互联网-通信': 44,\n",
       " '财务-审计-统计': 45,\n",
       " '质控-安防': 46,\n",
       " '贸易-采购': 47,\n",
       " '超市-百货-零售': 48,\n",
       " '运动健身': 49,\n",
       " '酒店': 50,\n",
       " '金融-银行-证券-投资': 51,\n",
       " '销售11': 52,\n",
       " '餐饮': 53,\n",
       " '餐饮零工': 54,\n",
       " '高级管理': 55}"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#建立种类索引id的字典\n",
    "category_content_to_id_dict = df_category.to_dict()['id']\n",
    "category_content_to_id_dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tel</th>\n",
       "      <th>category</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>94a20c908ea398cefba903e2d6598ea2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5abd29bae58e80cc2513b9aa0f3dd598</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>90875eb5b8fc1c84cf9a395f642ac092</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>05f8673bd351bdb9bf3f503013784da8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>f4e507f349ac8455d8426db77c377636</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                tel  category\n",
       "0  94a20c908ea398cefba903e2d6598ea2         1\n",
       "1  5abd29bae58e80cc2513b9aa0f3dd598         1\n",
       "2  90875eb5b8fc1c84cf9a395f642ac092         1\n",
       "3  05f8673bd351bdb9bf3f503013784da8         1\n",
       "4  f4e507f349ac8455d8426db77c377636         1"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过上面的字典索引，将customer表中的category一列的内容转变为编号（category_id）。\n",
    "df_customer['category'] = df_customer['category'].apply(\n",
    "    lambda category: category_content_to_id_dict[category]\n",
    ")\n",
    "df_customer.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tel</th>\n",
       "      <th>category_id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>94a20c908ea398cefba903e2d6598ea2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5abd29bae58e80cc2513b9aa0f3dd598</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>90875eb5b8fc1c84cf9a395f642ac092</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>05f8673bd351bdb9bf3f503013784da8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>f4e507f349ac8455d8426db77c377636</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                tel  category_id\n",
       "0  94a20c908ea398cefba903e2d6598ea2            1\n",
       "1  5abd29bae58e80cc2513b9aa0f3dd598            1\n",
       "2  90875eb5b8fc1c84cf9a395f642ac092            1\n",
       "3  05f8673bd351bdb9bf3f503013784da8            1\n",
       "4  f4e507f349ac8455d8426db77c377636            1"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 修正列名字\n",
    "df_customer.columns = ['tel','category_id']\n",
    "df_customer.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 写入数据库\n",
    "df_customer.to_sql(\n",
    "    'customer',\n",
    "    conn2,\n",
    "    index=False,\n",
    "    if_exists='append',\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 7.沟通结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'2020-06-01':                                   手机号 销售姓名   沟通结果\n",
       " 0    04875e81bd8363d57a45023dfe0f6fad   刘洋   继续跟单\n",
       " 1    664ce871652fc5000537372196d303e1   刘洋  非意向用户\n",
       " 2    c10304ba5e13f140c15d9ca2356abec2   刘洋  非意向用户\n",
       " 3    5ba2bc25041f5a246e8fcbd070afb47d   刘洋   继续跟单\n",
       " 4    fa5dfbe3e3b7bdb1fefe8c2498204d49   刘洋  非意向用户\n",
       " ..                                ...  ...    ...\n",
       " 745  39e0be8a848bca19a02a4b1a85352f8b   王超  非意向用户\n",
       " 746  a408f9dceebb04d163ac4bb7c9eacdb6   王超  非意向用户\n",
       " 747  780b1f34a53624c661b2c61c7df05518   王超  非意向用户\n",
       " 748  71d80a33c488af6e648d6e1024604f44   王超   继续跟单\n",
       " 749  92982c249290e9cc645f36827b03d921   王超  非意向用户\n",
       " \n",
       " [750 rows x 3 columns],\n",
       " '2020-06-02':                                   手机号 销售姓名    沟通结果\n",
       " 0    6922d3d95dc6323d579ef50be8029f2b   刘洋    继续跟单\n",
       " 1    2322fa52eef725b00d93cc3dff017281   刘洋   非意向用户\n",
       " 2    433f2444afe1bb4fdc1a755126807a05   刘洋    继续跟单\n",
       " 3    30c0671904502ddc75fe4cabb32b896f   刘洋   非意向用户\n",
       " 4    4576169057a7a6d1072613fac375e2be   刘洋   非意向用户\n",
       " ..                                ...  ...     ...\n",
       " 745  06641c12d07449f5b7a6e6c721a52bb4   王超   非意向用户\n",
       " 746  6bb83c22c719d5cfc4b3a4a00560ae3f   王超   非意向用户\n",
       " 747  5e4662bdfc838783218c970fc04aad02   王超    继续跟单\n",
       " 748  7ccbe3ff3904344d13bb3e5d1c300a4b   王超  直接签单成功\n",
       " 749  a66c81a565b4f3b1bf034b41ef0e822e   王超    继续跟单\n",
       " \n",
       " [750 rows x 3 columns],\n",
       " '2020-06-03':                                   手机号 销售姓名    沟通结果\n",
       " 0    1b2d442500ce004d55afaf3b03bb3730   刘洋    继续跟单\n",
       " 1    08089b0102c1abddcca287b7e7580d02   刘洋    继续跟单\n",
       " 2    0d2fe954592e9abce9b331093363a298   刘洋   非意向用户\n",
       " 3    a5031c32195742fc4deb705b376fd444   刘洋    继续跟单\n",
       " 4    fd38a5ace40874acff1685cab2c713c1   刘洋   非意向用户\n",
       " ..                                ...  ...     ...\n",
       " 977  71fcd9ec26e3cab049667d7814e92f3c   王超   非意向用户\n",
       " 978  7497edf2757859b6760f6355b8c3ec71   王超    跟单失败\n",
       " 979  33608813c2f0b8019e18ae134e42d0ad   王超    继续跟单\n",
       " 980  3675609d48820b6f5398ec33202d9df0   王超  直接签单成功\n",
       " 981  7a8f5682910e3a914784a4e13aeb4e12   王超    跟单失败\n",
       " \n",
       " [982 rows x 3 columns],\n",
       " '2020-06-04':                                    手机号 销售姓名   沟通结果\n",
       " 0     1f03ebfecad2b6da5077253bcdd697a6   刘洋  非意向用户\n",
       " 1     4b2d0cae2c9ab60b04feebc540c04c23   刘洋   继续跟单\n",
       " 2     d870df84bbf70d167422dd8743bf8fbd   刘洋   继续跟单\n",
       " 3     40d88f346da4c9f41dbed31bbc1215a7   刘洋  非意向用户\n",
       " 4     6adbeff6fe7fa35e895d21df7d5d5a07   刘洋   跟单失败\n",
       " ...                                ...  ...    ...\n",
       " 1069  77a71c6c289b4b2e22d78fa3f0c57382   王超   继续跟单\n",
       " 1070  02c7456aaea4cd42129161bac266337a   王超  非意向用户\n",
       " 1071  c9da353d6e51a7f9eaf1ba8c0baa5892   王超   继续跟单\n",
       " 1072  e37140b5e4c0184e1b3eb342c7db770c   王超   继续跟单\n",
       " 1073  acda24880661856c4813c22e4ef454f0   王超  非意向用户\n",
       " \n",
       " [1074 rows x 3 columns],\n",
       " '2020-06-05':                                    手机号 销售姓名   沟通结果\n",
       " 0     fdda3f3c74c14710945699370480a7d1   刘洋   继续跟单\n",
       " 1     c22dc10e6cf523efd99dee81072ebb6f   刘洋   继续跟单\n",
       " 2     3582ca750a9aa99bb8a39ced939e21d6   刘洋  非意向用户\n",
       " 3     035d834b9909ba7371b0fb7e49e8c9c8   刘洋   继续跟单\n",
       " 4     2aff23ad9b0823cbccd0add34755b6a3   刘洋  非意向用户\n",
       " ...                                ...  ...    ...\n",
       " 1056  e19cb6ba29cbff22da101f555f8424ca   王超  非意向用户\n",
       " 1057  8d466d0fdb57c48d1d67eae058a9e7d5   王超   继续跟单\n",
       " 1058  376936d3fbc8b46a74ecd1d3dfeb12c9   王超  非意向用户\n",
       " 1059  47aeb04467b8101beee4059af1171c94   王超  非意向用户\n",
       " 1060  9250bf93bfc6964c086095c488b6f113   王超   继续跟单\n",
       " \n",
       " [1061 rows x 3 columns],\n",
       " '2020-06-06':                                    手机号 销售姓名   沟通结果\n",
       " 0     5f2f159652e80d8f12d136619aed8806   刘洋   继续跟单\n",
       " 1     9ee3ffcef1216d42c539ed66ea117ac3   刘洋   跟单失败\n",
       " 2     55dea521ece0b319b3b516b1598d28a3   刘洋   跟单失败\n",
       " 3     d3ef32f4c00e8b5a820788a07132702f   刘洋   继续跟单\n",
       " 4     cde816c9aa98a96b0333cb1c96fae0f6   刘洋   继续跟单\n",
       " ...                                ...  ...    ...\n",
       " 1061  1292083aa52923cd10033c89dfa0e503   王超  非意向用户\n",
       " 1062  b85512fd138ad724a176e9829522f7c8   王超  非意向用户\n",
       " 1063  f9cdd6decaf70a77d2326f81d72a6a48   王超   跟单失败\n",
       " 1064  1f8be623e659f0d524a262e2f720d133   王超  非意向用户\n",
       " 1065  1f878d57f791fdc4f40ca60ecb94a73a   王超  非意向用户\n",
       " \n",
       " [1066 rows x 3 columns],\n",
       " '2020-06-07':                                    手机号 销售姓名   沟通结果\n",
       " 0     9d5fe460e1c6a4f6b1e43787cb5df85d   刘洋   继续跟单\n",
       " 1     47fc3276915e33d4741b970321ae8c57   刘洋   跟单失败\n",
       " 2     66acca4d292a6bad47eb7cdbe9db3c70   刘洋  非意向用户\n",
       " 3     0afbb8c00d88c7fcd05959863b3122e5   刘洋   跟单失败\n",
       " 4     ff761c4c8f6f784558a29df456f48592   刘洋   继续跟单\n",
       " ...                                ...  ...    ...\n",
       " 1062  b109b20159a85df32c235ecded3700e1   王超   跟单失败\n",
       " 1063  0be98d61c95345479be4ee3d5270f4c0   王超  非意向用户\n",
       " 1064  4d50bacff609780bed6ae31178d2904f   王超   继续跟单\n",
       " 1065  b5ec749afcb0bc8dd34b2596af218b21   王超  非意向用户\n",
       " 1066  c2eaf8df59964f122ce6d2644f3583e1   王超  非意向用户\n",
       " \n",
       " [1067 rows x 3 columns],\n",
       " '2020-06-08':                                    手机号 销售姓名    沟通结果\n",
       " 0     ecaa1588c33fdb71c3711df88baba5db   刘洋   非意向用户\n",
       " 1     4a9a04c3c3f1103589d55aaeece851cb   刘洋   非意向用户\n",
       " 2     ec2929f34841e9af608360e3c39b2d66   刘洋   非意向用户\n",
       " 3     d81f6a24dd9a1ac99156157d3751c0ef   刘洋    跟单失败\n",
       " 4     dd9bcf5229321f9e5835c6b780dcd59b   刘洋   非意向用户\n",
       " ...                                ...  ...     ...\n",
       " 1063  7701e505f5072c6d78db8e0a52952094   王超   非意向用户\n",
       " 1064  da66a5b663402e5d1f75d9e865a45ad7   王超  直接签单成功\n",
       " 1065  130a602f2ebfdc74156fa7bb593c4dd1   王超    继续跟单\n",
       " 1066  9b5d22215158146fc48b0c38986c9351   王超   非意向用户\n",
       " 1067  6ee3b94add58dbaddfcdc61e13114563   王超  直接签单成功\n",
       " \n",
       " [1068 rows x 3 columns],\n",
       " '2020-06-09':                                    手机号 销售姓名    沟通结果\n",
       " 0     9aac35baa72929f4c9f1c43e33137c03   刘洋   非意向用户\n",
       " 1     cddb8a0c0789db7aa702fe3d01d93eaf   刘洋    继续跟单\n",
       " 2     3a04988ff0bf2f19ece3f628153829b5   刘洋  直接签单成功\n",
       " 3     8324d101593424c0e3d5efd01757efd1   刘洋   非意向用户\n",
       " 4     499f989e9ef14da9cb92792490a80ffb   刘洋    继续跟单\n",
       " ...                                ...  ...     ...\n",
       " 1039  5b1c0aebe1c9e7f66abac113ad87e51e   王超   非意向用户\n",
       " 1040  5e7bbb5ffbb901430c848d56ea346b86   王超   非意向用户\n",
       " 1041  ece311029e370685db956eaca2af74bb   王超  直接签单成功\n",
       " 1042  42cf48ed5413fe89ad3aa5ac29b4bc94   王超   非意向用户\n",
       " 1043  6f4b50d1ca4de2afdbacb57dbc56e8f5   王超    继续跟单\n",
       " \n",
       " [1044 rows x 3 columns],\n",
       " '2020-06-10':                                    手机号 销售姓名   沟通结果\n",
       " 0     f7ebd0c41c7925814dda47cc512a1039   刘洋   继续跟单\n",
       " 1     d19de63e34c730697d97e05bcf601faa   刘洋   继续跟单\n",
       " 2     88c709b9608ab21dbf6b1d00c984b9db   刘洋  非意向用户\n",
       " 3     e01778a516259ba63a0ab3353959b524   刘洋   继续跟单\n",
       " 4     38681bd9c61f4f12bff656951f5f8148   刘洋   跟单失败\n",
       " ...                                ...  ...    ...\n",
       " 1065  99e5b822c7264840bc992019cebe09e9   王超  非意向用户\n",
       " 1066  19c5da5d89637a1ac17b248fcf28e991   王超  非意向用户\n",
       " 1067  e6f66a28acc6d08fbdb9886314e16f1f   王超   跟单失败\n",
       " 1068  485b8b2a2c5a4da1621bbd00e0bb4a46   王超   跟单失败\n",
       " 1069  3367aca2bbfc1b500b495f8e7fa7556f   王超  非意向用户\n",
       " \n",
       " [1070 rows x 3 columns],\n",
       " '2020-06-11':                                    手机号 销售姓名   沟通结果\n",
       " 0     9f5769ebb4e630e946fcc1d39ba6e9ad   刘洋   跟单失败\n",
       " 1     7efa9a1ffe87e1e41acb96e946a08b58   刘洋   跟单失败\n",
       " 2     ce8ded50ffb3083027fe55985ec1daf0   刘洋   跟单失败\n",
       " 3     6da5093fec10c8a3dcb31f93229e7859   刘洋   跟踪超时\n",
       " 4     603a6c7583ff0827eb3af6178f01dcac   刘洋   继续跟单\n",
       " ...                                ...  ...    ...\n",
       " 1055  64695ae84ac56a608f0bdd2ade802313   王超   跟踪超时\n",
       " 1056  5507c82a26372ae9c20592ea94e3e53d   王超   继续跟单\n",
       " 1057  a9ec263030bcd1d15192cdae46e7f17c   王超   跟单失败\n",
       " 1058  b7631a5da863262d8d2f76cda783d6a6   王超   继续跟单\n",
       " 1059  868d944022a0ca0d44ef1fac224a8694   王超  非意向用户\n",
       " \n",
       " [1060 rows x 3 columns],\n",
       " '2020-06-12':                                    手机号 销售姓名   沟通结果\n",
       " 0     1d31a144b1aea37045b2909f943de904   刘洋   继续跟单\n",
       " 1     6c243f07a29cd08851b7660d826d414e   刘洋   继续跟单\n",
       " 2     9d6c450ae17da5e11525587e749af8d8   刘洋  非意向用户\n",
       " 3     9bf1d90ebf9dc665a58cc5499a7a60a9   刘洋   继续跟单\n",
       " 4     c26e529a9c7d9663bcb54515da671c7d   刘洋   继续跟单\n",
       " ...                                ...  ...    ...\n",
       " 1031  ad07bcc1efd3ebb04b25af4660210d29   王超  非意向用户\n",
       " 1032  4dc591ff0b7a8cb473e4abc624717e81   王超  非意向用户\n",
       " 1033  b518db923d809cdb57bcd658bd78aafc   王超   跟单失败\n",
       " 1034  6227be0d95a61bf1418edc4ab6acdf53   王超   跟单失败\n",
       " 1035  a39b04f5c659e36e62c361d2d1b868e7   王超   继续跟单\n",
       " \n",
       " [1036 rows x 3 columns],\n",
       " '2020-06-13':                                    手机号 销售姓名    沟通结果\n",
       " 0     76d0cea2f33ce01a478cdcaa7095793b   刘洋    继续跟单\n",
       " 1     5f1d9573cf0cf35a3fa6a752a755f916   刘洋    继续跟单\n",
       " 2     b9c7a64d4a0f66349b3fa95b131e6d9f   刘洋  直接签单成功\n",
       " 3     3e0051f1bdcb6e6b5338b568e3df78f3   刘洋    继续跟单\n",
       " 4     2e7c1c6cbdd89275f576667c05007362   刘洋    跟单成功\n",
       " ...                                ...  ...     ...\n",
       " 1065  f9ffccd8f02a1e0d9db54968c8eab164   王超    跟单失败\n",
       " 1066  83c4fd11ad1e6afcdf3e64d9c0f29d0c   王超   非意向用户\n",
       " 1067  db9f46da56946401711469cd9e322b1d   王超   非意向用户\n",
       " 1068  487aec953ff2285a56d5b13400c380cf   王超   非意向用户\n",
       " 1069  bd318ae5fbf403c03a56494c874e0108   王超   非意向用户\n",
       " \n",
       " [1070 rows x 3 columns],\n",
       " '2020-06-14':                                    手机号 销售姓名   沟通结果\n",
       " 0     7b7f52e8d87df24cf8ca3a664ce0adbb   刘洋   继续跟单\n",
       " 1     f4d85b81c5f297c2f1bf53e0f004165b   刘洋  非意向用户\n",
       " 2     4cb11852f0453a5b6ca275ae4a6c8ebe   刘洋   跟单成功\n",
       " 3     159f17db714721e62ebf1aa00123d05b   刘洋   继续跟单\n",
       " 4     1d8864932674a6d0f73ef6a4c3beda51   刘洋   继续跟单\n",
       " ...                                ...  ...    ...\n",
       " 1071  548b4424abfeda9afdbc91373b1c977a   王超   继续跟单\n",
       " 1072  1b1e5f2f716ef8989237f039803f73c9   王超   跟踪超时\n",
       " 1073  c9b08b4f23e42e9405f051473d5499ee   王超  非意向用户\n",
       " 1074  19f6e192053062b4856fba26b2bf2873   王超   继续跟单\n",
       " 1075  c5668d16143ffbbf6455c82d8845beec   王超   继续跟单\n",
       " \n",
       " [1076 rows x 3 columns],\n",
       " '2020-06-15':                                    手机号 销售姓名    沟通结果\n",
       " 0     e1f13f0b18377df8c9ad752bd2bef733   刘洋    继续跟单\n",
       " 1     4032daad3e09ebccaa861ca4982fccc1   刘洋    继续跟单\n",
       " 2     270c6d48666d9c848cbc95fab58bd7f0   刘洋  直接签单成功\n",
       " 3     97453d6a009b9e8a20ab7859da663ac8   刘洋   非意向用户\n",
       " 4     47bc795850a77fa3dc195f982ff93f69   刘洋   非意向用户\n",
       " ...                                ...  ...     ...\n",
       " 1080  eabdeda73694cc89bd647ddd12b9ad2a   王超   非意向用户\n",
       " 1081  a100d0e9acdbfab0c05c8a69db4efc62   王超   非意向用户\n",
       " 1082  d19bdd126b07fd49ed4b020787ed3620   王超    跟单失败\n",
       " 1083  ec7f08837ae2fb8af7d1a82b38ede9f2   王超   非意向用户\n",
       " 1084  6ed9cd61814f5595f40123f1cd37d4ce   王超    继续跟单\n",
       " \n",
       " [1085 rows x 3 columns],\n",
       " '2020-06-16':                                    手机号 销售姓名   沟通结果\n",
       " 0     54cca96847a8c995223faad102728abf   刘洋   继续跟单\n",
       " 1     b7c2c4b30930378cc1828ad21702bd7e   刘洋  非意向用户\n",
       " 2     81d333aedd3d954df73a59f7171fc929   刘洋  非意向用户\n",
       " 3     d6a0fbd41e509176c732944cfd435d84   刘洋   跟踪超时\n",
       " 4     11271a4371551dc691bc2b5cc1a1cb5a   刘洋   继续跟单\n",
       " ...                                ...  ...    ...\n",
       " 1073  bede273d48e8d256fdc30818ff55fda9   王超  非意向用户\n",
       " 1074  59bda2d5576aef819021982a7b127f3d   王超  非意向用户\n",
       " 1075  6f95cfdd56fd603b339b817a123ff8ee   王超   跟单失败\n",
       " 1076  ee5ed83a2bf2dfc721671461dc7abbca   王超  非意向用户\n",
       " 1077  2034ba78b1ed745043c05eea85acf1a0   王超  非意向用户\n",
       " \n",
       " [1078 rows x 3 columns],\n",
       " '2020-06-17':                                    手机号 销售姓名    沟通结果\n",
       " 0     f150380caf715d4d4a61b3dc4e5735d7   刘洋    继续跟单\n",
       " 1     84b3e9bfe05c2a39fce03ccf42376cb4   刘洋    继续跟单\n",
       " 2     2c7bcdf965b3248022b8b2cee2be20a7   刘洋   非意向用户\n",
       " 3     d2d857845c73e501be9f91c19540dcf5   刘洋   非意向用户\n",
       " 4     b255744527b26c17abb56115aab1666a   刘洋   非意向用户\n",
       " ...                                ...  ...     ...\n",
       " 1068  8b95bf239337bf2e8be07f6e0eec8207   王超   非意向用户\n",
       " 1069  146d4b8483289f370f3e4691e05fd052   王超    继续跟单\n",
       " 1070  a6140b7d52789c785e854e1d6e34427b   王超   非意向用户\n",
       " 1071  a443e9797437c85ad0d57b69afa6292a   王超  直接签单成功\n",
       " 1072  0580f8404ef83228691f5c72b1ed866b   王超    跟单失败\n",
       " \n",
       " [1073 rows x 3 columns],\n",
       " '2020-06-18':                                    手机号 销售姓名   沟通结果\n",
       " 0     71c3384fbe110cab9aef4d6cb03ad01d   刘洋  非意向用户\n",
       " 1     e265b540a595455ee94093b1fc1d6e1b   刘洋  非意向用户\n",
       " 2     954d0e3ccb8295903fc769d7041c0478   刘洋  非意向用户\n",
       " 3     f0c1f7866ef899e325c8624819f148da   刘洋   继续跟单\n",
       " 4     9d8ccfef7201af6ee5c0c546c5ce9d39   刘洋   跟单失败\n",
       " ...                                ...  ...    ...\n",
       " 1053  06ba9943ab6eede2f57c98de6f703f33   王超  非意向用户\n",
       " 1054  8ac622178425193e506ee687f2a087fb   王超   跟单失败\n",
       " 1055  2952fac4a40f2c024933154040f42219   王超  非意向用户\n",
       " 1056  44548510308a78402216b8eacf3c5f25   王超  非意向用户\n",
       " 1057  6e0d8674f6bc2401b37a0f04c01c121f   王超  非意向用户\n",
       " \n",
       " [1058 rows x 3 columns],\n",
       " '2020-06-19':                                    手机号 销售姓名   沟通结果\n",
       " 0     e101f7cdb2cc8bb4eefe5884e77a1f2a   刘洋  非意向用户\n",
       " 1     ba2b3b7bfff74bac4c6bf6d8e91b8a40   刘洋  非意向用户\n",
       " 2     ca7526c17d52e122e78f460a725ff6af   刘洋   继续跟单\n",
       " 3     caced2ce3d609f44f9425865d1c75c02   刘洋   跟踪超时\n",
       " 4     6d43d2f7d7b70bc04cfb03883c67f7fd   刘洋   继续跟单\n",
       " ...                                ...  ...    ...\n",
       " 1029  db3feb1022ba991b91eae729260826ff   王超  非意向用户\n",
       " 1030  7ebe7abddeba776deabce68a7c00e62b   王超  非意向用户\n",
       " 1031  073e5e96b6c6f555abb43d3d6009115c   王超   继续跟单\n",
       " 1032  796c7bbbf5948b8fbe3e8f682d4838f3   王超  非意向用户\n",
       " 1033  0d253bf642b2d0011d6820ed833f9d0c   王超   继续跟单\n",
       " \n",
       " [1034 rows x 3 columns],\n",
       " '2020-06-20':                                    手机号 销售姓名    沟通结果\n",
       " 0     91f3ae21823aa48e02f4964c462573be   刘洋   非意向用户\n",
       " 1     c6d6c993aa059987e08228563ff6313c   刘洋   非意向用户\n",
       " 2     a733992cf24c090ce847e7a9e07bb889   刘洋    继续跟单\n",
       " 3     7ea716f2b0ad6772cd7dfde15236709e   刘洋   非意向用户\n",
       " 4     bf79c8b210300b8b86ecc162fade585b   刘洋  直接签单成功\n",
       " ...                                ...  ...     ...\n",
       " 1053  ffacdc922b5b08a08c347583636c994f   王超    跟单失败\n",
       " 1054  6166178a911e8e4a2db9f0b505af806d   王超    跟单失败\n",
       " 1055  e1f3f102d72a9835c8c722c019459944   王超   非意向用户\n",
       " 1056  eaff609fb76d9590a4de3911cf85de09   王超    跟单失败\n",
       " 1057  9f5709e536923ebcf8e4ba9d1e7bab78   王超   非意向用户\n",
       " \n",
       " [1058 rows x 3 columns],\n",
       " '2020-06-21':                                    手机号 销售姓名    沟通结果\n",
       " 0     d9e05370be1ad10b6e8e807fecc578d6   刘洋   非意向用户\n",
       " 1     da3c7de6422a8005a63ab405086c1110   刘洋   非意向用户\n",
       " 2     8309c6d46702da3aaf840139104dd80c   刘洋    继续跟单\n",
       " 3     dfa449fe2b6110a73767802eed2d332a   刘洋    继续跟单\n",
       " 4     85f6a454fbd1badc266c369ec317f950   刘洋   非意向用户\n",
       " ...                                ...  ...     ...\n",
       " 1058  6a26cd26b7b8d4d0d03701cbdf9a835d   王超   非意向用户\n",
       " 1059  1746b51518ee2c0c19e04341beffc690   王超  直接签单成功\n",
       " 1060  2e9f809dde949b0bb3699ad92ae66d99   王超    继续跟单\n",
       " 1061  ec191ebecad566085ce4fced11017b94   王超   非意向用户\n",
       " 1062  d992d5bfee67fb4f8c11d0ab214b9c9a   王超   非意向用户\n",
       " \n",
       " [1063 rows x 3 columns],\n",
       " '2020-06-22':                                    手机号 销售姓名    沟通结果\n",
       " 0     fd2d5c52ff73c0cb92b66d62bd0985cc   刘洋    跟单失败\n",
       " 1     c1d79e7904972bff3595c86060e244b1   刘洋    跟单成功\n",
       " 2     185e8159faca5171e2ebc13e6e42edec   刘洋    继续跟单\n",
       " 3     340959239305e8c27e4ea544cd1a7730   刘洋   非意向用户\n",
       " 4     6c18426f37e94e66631c5b07fe6306c9   刘洋    跟单成功\n",
       " ...                                ...  ...     ...\n",
       " 1035  93489cd0fbdc305f26b631cd7a0bbddf   王超    继续跟单\n",
       " 1036  9aed2433b79a5ef960bd699575520e27   王超  直接签单成功\n",
       " 1037  ba0be3cce844fce3dcabba527802ef89   王超  直接签单成功\n",
       " 1038  aaa2aa749b76a70d60b5ed9584e2b9fd   王超   非意向用户\n",
       " 1039  1b20732012ada0e3cc789ea56f9b51bc   王超   非意向用户\n",
       " \n",
       " [1040 rows x 3 columns],\n",
       " '2020-06-23':                                    手机号 销售姓名   沟通结果\n",
       " 0     7d6c59250c5cb170d903181323ca3bdc   刘洋   继续跟单\n",
       " 1     998db95fdddf434f28d5c3d7e9830d17   刘洋  非意向用户\n",
       " 2     0a9d0052faaa6c400f3cb536f8e42711   刘洋   继续跟单\n",
       " 3     aac6ffba89a89a0c0ea2bbb5df79ef8b   刘洋  非意向用户\n",
       " 4     d66536b62f967ac744c5e9a7fd1c6ff5   刘洋   跟单失败\n",
       " ...                                ...  ...    ...\n",
       " 1049  9e349ddcade468434b367ab8b8431858   王超   继续跟单\n",
       " 1050  a49fe0b2a4406c222f7dc6d6a2f73bb6   王超  非意向用户\n",
       " 1051  60a77b10d74ab4f1ed6f0585d408c26b   王超  非意向用户\n",
       " 1052  cf481dfe88925884c5384f5ae3653abd   王超  非意向用户\n",
       " 1053  ad4e4b09beab0daeb908eda2533d2e37   王超   继续跟单\n",
       " \n",
       " [1054 rows x 3 columns],\n",
       " '2020-06-24':                                    手机号 销售姓名    沟通结果\n",
       " 0     e854fa11381bf542e0361fac151c98c6   刘洋    继续跟单\n",
       " 1     2c59c32b5701811a82ea28a0f123044d   刘洋    继续跟单\n",
       " 2     892c0a7bde6b95b322eba714b0700d4b   刘洋   非意向用户\n",
       " 3     9cc1f6518874c8efda5d3bec63565156   刘洋   非意向用户\n",
       " 4     1aa89040e8bc21e3823e6aa5a68d7b95   刘洋    继续跟单\n",
       " ...                                ...  ...     ...\n",
       " 1058  fa840f0079936c8097f2d74aa6240ec9   王超  直接签单成功\n",
       " 1059  c8df5cb2c1d4ad9d6d1b5624fcb6ae75   王超    跟单失败\n",
       " 1060  ed6d1311cfa1515e9b2a5b1ea2b11d67   王超   非意向用户\n",
       " 1061  f22466186b63ac54e0bc80c0acd21b3f   王超   非意向用户\n",
       " 1062  70dd3a1f49ec01b75b87c5975f9474b0   王超   非意向用户\n",
       " \n",
       " [1063 rows x 3 columns],\n",
       " '2020-06-25':                                    手机号 销售姓名   沟通结果\n",
       " 0     ceb529aa255f7d05080d2ca50e098fbc   刘洋  非意向用户\n",
       " 1     56c8e0f9f8816cf10628cbc30f571410   刘洋   跟单失败\n",
       " 2     cf111092574cde4ff15946ea19f8a076   刘洋  非意向用户\n",
       " 3     9079279d80ca21b49f724817c1f9516a   刘洋   继续跟单\n",
       " 4     7a87e85f53cc0eaa7c8c2053e696a749   刘洋  非意向用户\n",
       " ...                                ...  ...    ...\n",
       " 1035  c8ef26481bbdba736111bfc48a8058ef   王超  非意向用户\n",
       " 1036  2141734528eab8e85cec4689d2abd764   王超   跟单失败\n",
       " 1037  9125998eb511320b63e15e51c4a1e03b   王超   跟单失败\n",
       " 1038  31b43cbc71df07799ca10ad3010bdee0   王超  非意向用户\n",
       " 1039  96453c29f13af12b95b5c5c9b3f8df3b   王超   跟单失败\n",
       " \n",
       " [1040 rows x 3 columns],\n",
       " '2020-06-26':                                    手机号 销售姓名   沟通结果\n",
       " 0     bbf6282c7ae0da5d2f928de71760d93f   刘洋  非意向用户\n",
       " 1     33c01483657945dd73bc4cafdc757c14   刘洋   继续跟单\n",
       " 2     954671ecb000dee0a33ab2d777312f7e   刘洋  非意向用户\n",
       " 3     34c110c1c797ee0870996ca7d615f2d5   刘洋  非意向用户\n",
       " 4     2b101ccf93bea04b05c2e6615a4eee1c   刘洋   跟单成功\n",
       " ...                                ...  ...    ...\n",
       " 1062  4f31f64cefd957b2e2101e6486370ac6   王超   跟单失败\n",
       " 1063  6c1b76e4c4243ae801f6a2bd6dbba871   王超  非意向用户\n",
       " 1064  104637b9cbce9a96e5e4e5f6082edcf4   王超   跟单成功\n",
       " 1065  58dc9047e4c2771303b421df5103319c   王超  非意向用户\n",
       " 1066  071a03c6f977a71357602de6f0b9558c   王超  非意向用户\n",
       " \n",
       " [1067 rows x 3 columns],\n",
       " '2020-06-27':                                    手机号 销售姓名   沟通结果\n",
       " 0     89708023e3564f348d11edd0d4320e33   刘洋  非意向用户\n",
       " 1     f1260973e440d9642137ba3e78cef137   刘洋   跟踪超时\n",
       " 2     c84c101aa54d2fd1fa1706c05bb245ce   刘洋   跟单失败\n",
       " 3     5850c0e1b34f4608d62657b5daeb1121   刘洋  非意向用户\n",
       " 4     902f160472deac59decbb4231fb95a72   刘洋   跟单失败\n",
       " ...                                ...  ...    ...\n",
       " 1070  405cb948abcc64990f4c6ea82444d482   王超  非意向用户\n",
       " 1071  e8047d7fce9c3c5227d2e6c1f1ca4b58   王超   跟单失败\n",
       " 1072  946e0d2a3da81ea7d98ae36dbf977b00   王超   跟单成功\n",
       " 1073  02fbbecc8ab674805a914c9d803b35c8   王超  非意向用户\n",
       " 1074  753cb9345abbff72003fdd535d244706   王超  非意向用户\n",
       " \n",
       " [1075 rows x 3 columns],\n",
       " '2020-06-28':                                    手机号 销售姓名   沟通结果\n",
       " 0     3c747e6ebf923f0a99956d9dc00acbab   刘洋  非意向用户\n",
       " 1     93b7f82699854883085916e4353d0e06   刘洋  非意向用户\n",
       " 2     27c03f57416565291c188c9dc92e7071   刘洋  非意向用户\n",
       " 3     3ea36405e26706d82bfe74d6397800cb   刘洋   继续跟单\n",
       " 4     e33075622e134c9c5eb63f97b6224704   刘洋  非意向用户\n",
       " ...                                ...  ...    ...\n",
       " 1048  4892a74e7c7d528cd2af3f9e946da95f   王超  非意向用户\n",
       " 1049  9acf9cb23c57fb896cfdbbd23c26e8a4   王超   跟单失败\n",
       " 1050  f4a81c7b5abb0589e7b2820bdac6eff5   王超   继续跟单\n",
       " 1051  5017fb05d4f1f6f5ced588a6d2f9256d   王超  非意向用户\n",
       " 1052  0328055443c5338ebbfd0bbad32d6c05   王超   继续跟单\n",
       " \n",
       " [1053 rows x 3 columns],\n",
       " '2020-06-29':                                    手机号 销售姓名   沟通结果\n",
       " 0     135593ec661b38d51bec52ca26e0a8a8   刘洋  非意向用户\n",
       " 1     c7e6b6055e954b506b53332aaa39ce44   刘洋   跟单失败\n",
       " 2     17810ad73067e8706f5b67f2ec8834fa   刘洋   继续跟单\n",
       " 3     3f9b2bdb8c49f37a7ba553635abd9471   刘洋  非意向用户\n",
       " 4     66636788d936570e3d2b773a45c6a66e   刘洋   跟单失败\n",
       " ...                                ...  ...    ...\n",
       " 1058  ffa05f7e6fc52badb03fece24f4e47b5   王超   继续跟单\n",
       " 1059  86aed9585f3e23ca0cd2c45b09078a36   王超  非意向用户\n",
       " 1060  210eac40c80d848630490096793be855   王超  非意向用户\n",
       " 1061  d2547010b6c7693bd4aab604d505b8fc   王超  非意向用户\n",
       " 1062  eefd8ff7264a7219447f795be187fae4   王超   继续跟单\n",
       " \n",
       " [1063 rows x 3 columns],\n",
       " '2020-06-30':                                    手机号 销售姓名   沟通结果\n",
       " 0     caabc5b54c8abefb20d6ed44afeadc69   刘洋   继续跟单\n",
       " 1     2d553ae33d34bd03c7ccfc09dcbb44e5   刘洋   继续跟单\n",
       " 2     f25d9bbfe5173a425a2b540f716de815   刘洋   继续跟单\n",
       " 3     39f87e9d352ee9f24de0d16ce946ba20   刘洋   跟单失败\n",
       " 4     430cb654704188f461a3718d2fb24df6   刘洋   跟单失败\n",
       " ...                                ...  ...    ...\n",
       " 1066  d4cfb647b0bb60b5928c52780782e383   王超  非意向用户\n",
       " 1067  32eb47208d4ff7a5c5d7a2d973143cf0   王超   继续跟单\n",
       " 1068  4dce7718e7b02c03b7244ebcefae90ae   王超  非意向用户\n",
       " 1069  6acf34713bb3ffd5053f0b62ac2fae2b   王超  非意向用户\n",
       " 1070  910ba9edf17efd5789daa4551358aac7   王超  非意向用户\n",
       " \n",
       " [1071 rows x 3 columns]}"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取任务表\n",
    "mission_df_dict = pd.read_excel('./2020-06月销售任务清单.xlsx',sheet_name=None)\n",
    "mission_df_dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 给大表的每个分表（不同sheet（key））添加日期列，即sheet名\n",
    "for createDate in mission_df_dict.keys():\n",
    "    mission_df_dict[createDate]['createDate'] = createDate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>手机号</th>\n",
       "      <th>销售姓名</th>\n",
       "      <th>沟通结果</th>\n",
       "      <th>createDate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>04875e81bd8363d57a45023dfe0f6fad</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>继续跟单</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>664ce871652fc5000537372196d303e1</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>c10304ba5e13f140c15d9ca2356abec2</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5ba2bc25041f5a246e8fcbd070afb47d</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>继续跟单</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>fa5dfbe3e3b7bdb1fefe8c2498204d49</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                手机号 销售姓名   沟通结果  createDate\n",
       "0  04875e81bd8363d57a45023dfe0f6fad   刘洋   继续跟单  2020-06-01\n",
       "1  664ce871652fc5000537372196d303e1   刘洋  非意向用户  2020-06-01\n",
       "2  c10304ba5e13f140c15d9ca2356abec2   刘洋  非意向用户  2020-06-01\n",
       "3  5ba2bc25041f5a246e8fcbd070afb47d   刘洋   继续跟单  2020-06-01\n",
       "4  fa5dfbe3e3b7bdb1fefe8c2498204d49   刘洋  非意向用户  2020-06-01"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 合并各小任务表\n",
    "df_mission = pd.concat(\n",
    "    [mission_df_dict[createDate] for createDate in mission_df_dict.keys()],\n",
    "    axis=0,\n",
    ")\n",
    "df_mission.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tel</th>\n",
       "      <th>salesstaff_name</th>\n",
       "      <th>status</th>\n",
       "      <th>createDate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>04875e81bd8363d57a45023dfe0f6fad</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>继续跟单</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>664ce871652fc5000537372196d303e1</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>c10304ba5e13f140c15d9ca2356abec2</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5ba2bc25041f5a246e8fcbd070afb47d</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>继续跟单</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>fa5dfbe3e3b7bdb1fefe8c2498204d49</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                tel salesstaff_name status  createDate\n",
       "0  04875e81bd8363d57a45023dfe0f6fad              刘洋   继续跟单  2020-06-01\n",
       "1  664ce871652fc5000537372196d303e1              刘洋  非意向用户  2020-06-01\n",
       "2  c10304ba5e13f140c15d9ca2356abec2              刘洋  非意向用户  2020-06-01\n",
       "3  5ba2bc25041f5a246e8fcbd070afb47d              刘洋   继续跟单  2020-06-01\n",
       "4  fa5dfbe3e3b7bdb1fefe8c2498204d49              刘洋  非意向用户  2020-06-01"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 修正列名\n",
    "df_mission.columns = ['tel','salesstaff_name','status','createDate']\n",
    "df_mission.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['继续跟单', '非意向用户', '直接签单成功', '跟单失败', '跟单成功', '跟踪超时']"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看沟通结果status共有几种情况\n",
    "statuss = df_mission['status'].unique().tolist()\n",
    "statuss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>content</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>继续跟单</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>非意向用户</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>直接签单成功</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>跟单失败</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>跟单成功</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  content\n",
       "0    继续跟单\n",
       "1   非意向用户\n",
       "2  直接签单成功\n",
       "3    跟单失败\n",
       "4    跟单成功"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 创造status的dataframe，用来写入MySQL\n",
    "df_status = pd.DataFrame(\n",
    "    statuss,\n",
    "    columns = ['content'],\n",
    ")\n",
    "df_status.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 写入数据库\n",
    "df_status.to_sql(\n",
    "    'status',\n",
    "    conn2,\n",
    "    index=False,\n",
    "    if_exists='append',\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 8. 沟通任务"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tel</th>\n",
       "      <th>salesstaff_name</th>\n",
       "      <th>status</th>\n",
       "      <th>createDate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>04875e81bd8363d57a45023dfe0f6fad</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>继续跟单</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>664ce871652fc5000537372196d303e1</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>c10304ba5e13f140c15d9ca2356abec2</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5ba2bc25041f5a246e8fcbd070afb47d</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>继续跟单</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>fa5dfbe3e3b7bdb1fefe8c2498204d49</td>\n",
       "      <td>刘洋</td>\n",
       "      <td>非意向用户</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                tel salesstaff_name status  createDate\n",
       "0  04875e81bd8363d57a45023dfe0f6fad              刘洋   继续跟单  2020-06-01\n",
       "1  664ce871652fc5000537372196d303e1              刘洋  非意向用户  2020-06-01\n",
       "2  c10304ba5e13f140c15d9ca2356abec2              刘洋  非意向用户  2020-06-01\n",
       "3  5ba2bc25041f5a246e8fcbd070afb47d              刘洋   继续跟单  2020-06-01\n",
       "4  fa5dfbe3e3b7bdb1fefe8c2498204d49              刘洋  非意向用户  2020-06-01"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_mission.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>tel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>94a20c908ea398cefba903e2d6598ea2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>5abd29bae58e80cc2513b9aa0f3dd598</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>90875eb5b8fc1c84cf9a395f642ac092</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>05f8673bd351bdb9bf3f503013784da8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>f4e507f349ac8455d8426db77c377636</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59995</th>\n",
       "      <td>59996</td>\n",
       "      <td>a65aefdaeefec36a1050388ca7898d71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59996</th>\n",
       "      <td>59997</td>\n",
       "      <td>a431c672c62d3e3abbf0d438a1854129</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59997</th>\n",
       "      <td>59998</td>\n",
       "      <td>d7d2f00bd2102105085a36dd3383e7e0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59998</th>\n",
       "      <td>59999</td>\n",
       "      <td>3847ac14c994d8f3d3c00d7ef22bcc62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59999</th>\n",
       "      <td>60000</td>\n",
       "      <td>b6323123ae73a9ada0fd62f7d72dba01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>60000 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          id                               tel\n",
       "0          1  94a20c908ea398cefba903e2d6598ea2\n",
       "1          2  5abd29bae58e80cc2513b9aa0f3dd598\n",
       "2          3  90875eb5b8fc1c84cf9a395f642ac092\n",
       "3          4  05f8673bd351bdb9bf3f503013784da8\n",
       "4          5  f4e507f349ac8455d8426db77c377636\n",
       "...      ...                               ...\n",
       "59995  59996  a65aefdaeefec36a1050388ca7898d71\n",
       "59996  59997  a431c672c62d3e3abbf0d438a1854129\n",
       "59997  59998  d7d2f00bd2102105085a36dd3383e7e0\n",
       "59998  59999  3847ac14c994d8f3d3c00d7ef22bcc62\n",
       "59999  60000  b6323123ae73a9ada0fd62f7d72dba01\n",
       "\n",
       "[60000 rows x 2 columns]"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查询customer表的（通过connection2）\n",
    "\n",
    "df_customer = pd.read_sql(\n",
    "    'select id,tel from customer;',\n",
    "    conn2,\n",
    ")\n",
    "df_customer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>tel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>94a20c908ea398cefba903e2d6598ea2</th>\n",
       "      <td>1</td>\n",
       "      <td>94a20c908ea398cefba903e2d6598ea2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5abd29bae58e80cc2513b9aa0f3dd598</th>\n",
       "      <td>2</td>\n",
       "      <td>5abd29bae58e80cc2513b9aa0f3dd598</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90875eb5b8fc1c84cf9a395f642ac092</th>\n",
       "      <td>3</td>\n",
       "      <td>90875eb5b8fc1c84cf9a395f642ac092</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>05f8673bd351bdb9bf3f503013784da8</th>\n",
       "      <td>4</td>\n",
       "      <td>05f8673bd351bdb9bf3f503013784da8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>f4e507f349ac8455d8426db77c377636</th>\n",
       "      <td>5</td>\n",
       "      <td>f4e507f349ac8455d8426db77c377636</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                  id                               tel\n",
       "94a20c908ea398cefba903e2d6598ea2   1  94a20c908ea398cefba903e2d6598ea2\n",
       "5abd29bae58e80cc2513b9aa0f3dd598   2  5abd29bae58e80cc2513b9aa0f3dd598\n",
       "90875eb5b8fc1c84cf9a395f642ac092   3  90875eb5b8fc1c84cf9a395f642ac092\n",
       "05f8673bd351bdb9bf3f503013784da8   4  05f8673bd351bdb9bf3f503013784da8\n",
       "f4e507f349ac8455d8426db77c377636   5  f4e507f349ac8455d8426db77c377636"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将tel设为index,因为tel是我们想要转化为key的内容。后面to_dict()时index会变成key。\n",
    "df_customer.index = df_customer['tel'].values\n",
    "df_customer.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'94a20c908ea398cefba903e2d6598ea2': 30001,\n",
       " '5abd29bae58e80cc2513b9aa0f3dd598': 30002,\n",
       " '90875eb5b8fc1c84cf9a395f642ac092': 30003,\n",
       " '05f8673bd351bdb9bf3f503013784da8': 30004,\n",
       " 'f4e507f349ac8455d8426db77c377636': 30005,\n",
       " 'de39298ba26941840e146386726712c3': 30006,\n",
       " '12d00e1f9372b2efb29413be3be299ae': 30007,\n",
       " 'c0c82178f974fa1ed40e60c9ae72b8eb': 30008,\n",
       " 'f2a89aedd5b57b3656459fc913432d24': 30009,\n",
       " '6db2e0ef79bd4b1461c244428e467997': 30010,\n",
       " '06206c7115f9fee591cb51fcc0060079': 30011,\n",
       " '525f7fb91c497be839eba16fe588ab5c': 30012,\n",
       " 'e748dc95fd8e241f07d7774f9dd0b9b9': 30013,\n",
       " '61ceab2e2c8357806303e532f3e99c64': 30014,\n",
       " '4af05ac2132a43a34b94ffebe1eeff06': 30015,\n",
       " 'd34bf83271c49c6a218977e5efce357d': 30016,\n",
       " '763b3a2140685ae8105a89428f5ebb85': 30017,\n",
       " '6baaeb59f010aa7371756bffe5133f8c': 30018,\n",
       " 'd5ccaf283ec841184c4a815483e1d660': 30019,\n",
       " 'b2f9650bd5ffc1159fdf8c6aa4f720bb': 30020,\n",
       " 'c7a981b684d178e0339b09df42c9947f': 30021,\n",
       " '623ef9f449bf880caf5e485c7e0b3dd7': 30022,\n",
       " '8cb245b651c1925be27f07808ebe02e7': 30023,\n",
       " 'cb7b354d1088c3c4c6ff490d2ab649f7': 30024,\n",
       " 'cd749b8a2a519712bf89538278f94d41': 30025,\n",
       " '5e4662bdfc838783218c970fc04aad02': 30026,\n",
       " 'a51257aba4bd89d33d3a6fa942d45870': 30027,\n",
       " '2b62343636cbca2c9cedbc5e61c7bf02': 30028,\n",
       " 'cd08aef7321364d3331766a407e2007c': 30029,\n",
       " 'ad2cdd0046d883eeff435a2822785f49': 30030,\n",
       " '3f9da93dabab167b674c56d2d750515b': 30031,\n",
       " '334a8a8fc0274a1132ac265ac78ab5a0': 30032,\n",
       " '0bc9380a196b75d4d5baf08908071ad4': 30033,\n",
       " 'c6f68d10b98cbb22de2568e78615b314': 30034,\n",
       " '1a97757a46318cce46aaaadf293ac3b9': 30035,\n",
       " 'a7f14c87fc09313b238ef5d9553f0e30': 30036,\n",
       " '8ef4fc4bf56800033b39848870abc26a': 30037,\n",
       " '895218c3fa9c467222ff7fdb83b19284': 30038,\n",
       " 'bcb45f276699c263697bb09cb368f94e': 30039,\n",
       " '3551ad69203327b78e6c7a176fbd7896': 30040,\n",
       " '20bfa6f2dcefcb6c66567705d92037a7': 30041,\n",
       " '600827ed70cbc817f90c55c43da2e681': 30042,\n",
       " '670a1521172054af53d0937cec0ba9f7': 30043,\n",
       " '288bedf57ad9287a18b6d02b30ca9722': 30044,\n",
       " '2549252229ee55987ad74453088a8059': 30045,\n",
       " '4c8f984574b55870322dc40bea4636c5': 30046,\n",
       " '1a3bc336e8575f201ca3e0cec8dbbe1c': 30047,\n",
       " 'ddfb4c98743d3803adbca7528f443efd': 30048,\n",
       " '3340b7ad0f9173505fb377261ccef12a': 30049,\n",
       " '683686f5251a8a4b2b0cff8be186533d': 30050,\n",
       " 'f3843b92cf33ab345c70155de32dec05': 30051,\n",
       " '5d89ae76174ed72108110721cf7f4a5a': 30052,\n",
       " '85c7f4dfd69469f5ceaa5a1f4657bbae': 30053,\n",
       " 'cf59c1ced1b1db9b87e58f1bb9cd48e0': 30054,\n",
       " 'e4384292789351a39c1eb47de55f6a26': 30055,\n",
       " '1338de6dbb1f23181cab4e218b882edc': 30056,\n",
       " 'e9ea0f25911e47206e95b8571a220a1e': 30057,\n",
       " '4b2d0cae2c9ab60b04feebc540c04c23': 30058,\n",
       " '9f1ded337522bf58ba21e5a057a7dbd2': 30059,\n",
       " '702b410c03123f99300f1355e243efaa': 30060,\n",
       " 'f67a7d48f2f2a4c332199db1006a9ad5': 30061,\n",
       " 'aa60bffd241b44fd74b1d7b72db7fc52': 30062,\n",
       " '1481ffa3e683ce7ad0ff95696b603a42': 30063,\n",
       " '87f12b6effa5430284f2efa397c7f6e1': 30064,\n",
       " 'c74945cf48e8fa175ad0d557645911c4': 30065,\n",
       " 'aec5a1de7f5fb87db065520468d9fabf': 30066,\n",
       " '3a3e337689d6881addb4dbacfdff6a7f': 30067,\n",
       " '52012166681d66dd5650619c39d3753e': 30068,\n",
       " '8c2eb539ef1f47e41ed6f14f6eaa1014': 30069,\n",
       " '776cdb9c688b83932ffdef66f3cbb7fd': 30070,\n",
       " '56c70d0ade67ddaf2e32aa9fb9b923ae': 30071,\n",
       " '98d35ac78bd61b81ffc61c418ff9738c': 30072,\n",
       " 'b7bacd2ca679df02f864c0497109e2fe': 30073,\n",
       " '545fead6dc42b7805447d4e31606ae47': 30074,\n",
       " '89327eb03cb2207434b3ddd1e6ab4653': 30075,\n",
       " '7aa11ee9b6df8a6c3fa6d723a513ebf2': 30076,\n",
       " '6c87bdf152e83eda6f4b7ee6705b1b8e': 30077,\n",
       " 'ca0135d79b14465e51c22be73977ab3f': 30078,\n",
       " 'd44b346909967a0a066f315080f9ad08': 30079,\n",
       " 'a9c2aad26cd1185b92758bb0f3aff580': 30080,\n",
       " '5586e6809e02dec9b7f3c46c3de08306': 30081,\n",
       " 'ff29cb651b4db5603d55152c5cd4b9b9': 30082,\n",
       " 'fe6a1c407e8417006288144deb8b39d0': 30083,\n",
       " 'b63ca5038f06cc6c8dc71f7841fff9b7': 30084,\n",
       " '879e22eaf5215a81d61f8246184ccd6d': 30085,\n",
       " '488beff3182360030c7bc0e74046a9fc': 30086,\n",
       " 'ed9f66815bb11e862236b0d3a9333c0a': 30087,\n",
       " '47fc3276915e33d4741b970321ae8c57': 30088,\n",
       " '08e09468338c8cb67093dd33d8a89452': 30089,\n",
       " '82d9bd6fdcf9d9dedc62fb99c1255b42': 30090,\n",
       " '2ea1a9fbf7216c86cf64fdfebe73c1eb': 30091,\n",
       " '911bb3dfcd6d0df6831cad34eb0fdf71': 30092,\n",
       " '09da6297fb5a8ee7dcc4e2a9fa50de32': 30093,\n",
       " '82187ee6d0fe9f56ca85e8b680f7cb99': 30094,\n",
       " '5c1ffc3102501ecbd3af5ad5c2d1ad01': 30095,\n",
       " '65c8a806662a2c88d459553e871f841e': 30096,\n",
       " '7f63661433ebfce620154da72301bc11': 30097,\n",
       " 'c3961d051e9b20b0a2151abd0c0fa4a8': 30098,\n",
       " 'c3b5eb8ef7bbf2a93e62e9de78bf7387': 30099,\n",
       " 'cd803079e9a170b8af85ef1db14c8dd3': 30100,\n",
       " 'c5d0f772f987728c122ac920b8d52c2a': 30101,\n",
       " '87bf5f46f24d427a44b6e228a08802c4': 30102,\n",
       " '4fb5fb194ac15937360928de0c386f4d': 30103,\n",
       " '363a568bded2d5006a7dbfc4822b7430': 30104,\n",
       " '41bc90d96b056f5c235ec2cb0a175e1e': 30105,\n",
       " '8b1c58c4a0cd67f3423324e4effe94b6': 30106,\n",
       " '9dbd6ed81b4ec250183c2f2e795191c8': 30107,\n",
       " '547f36de4bc8818f4211b5590e2e5c3c': 30108,\n",
       " '9c32d520b9082e5854e1f97d9d1c1622': 30109,\n",
       " 'dd0d4c04079231d8f068c42784ddacd0': 30110,\n",
       " '789132ed710b7ee5321ae6547ce64f03': 30111,\n",
       " '5b2319f86eede746e348b0239e42502d': 30112,\n",
       " '99035bf4934fbe473bf9e2a0d50b6836': 30113,\n",
       " 'dab7db43e13c63a8e622ab8a7349dbe8': 30114,\n",
       " '284daf9d7749a11861c2039eb7b74d86': 30115,\n",
       " '28ee78b7a85e019277b35779ac5aa77c': 30116,\n",
       " '9a5dc0de22c7955d95c8a1711d26a063': 30117,\n",
       " '7f9b641270031c8ff2e064de037508de': 30118,\n",
       " 'cd6b4bf059771e21d61e605eb8a35f42': 30119,\n",
       " 'fc2228a7ab1cc0f264f91806d7b892b6': 30120,\n",
       " '61293c412f4d1e19b820d4517e2dbd41': 30121,\n",
       " '85e0eee96c1401e5f530b8684e4bacd0': 30122,\n",
       " '20c9e635c6de8fc672eedca078b92237': 30123,\n",
       " '05132eb1794f9fbedc8f30222994bc8f': 30124,\n",
       " '8e0cd23e46ae519ab10e7ec01ae1ed72': 30125,\n",
       " 'f43ac69d9727874b1bfdc6a582b18b81': 30126,\n",
       " '4d329d33c40dd0a774e0d24c8b6a4768': 30127,\n",
       " '1324cd4c16a86b5bf357757e302c65db': 30128,\n",
       " 'aa4dfef3e77628b56ae57c9c76738b01': 30129,\n",
       " '6e7ad5505eb8cd05877cf70e5005c5f5': 30130,\n",
       " 'c4b52d2fd7c51431ff3f5cf4a7657cc1': 30131,\n",
       " '74faad2c2b29212814c061891bccb029': 30132,\n",
       " '245314cbd3147720e2a1d09ad8ca8e66': 30133,\n",
       " 'fc5c4c5520a026beba67bcc45931902c': 30134,\n",
       " 'a064fb269ec0e580d67e255d0138cb9b': 30135,\n",
       " '7a0182c1b7b5cce3e62a08893fd55866': 30136,\n",
       " '8e1d768214ede5b2cf6d97577147a6ac': 30137,\n",
       " 'dbd6599f7a6a5a06b0eb99b82eb48718': 30138,\n",
       " '606bf1b33dc46c4eda7c713ea2890ee9': 30139,\n",
       " '05cdcfd7e5c986ab1d3abee4681948c8': 30140,\n",
       " 'cfbdcb7e32d0c1752c3c0fbacae874e9': 30141,\n",
       " '5b42c6c2b5feb35394d1bd30a3a14cdd': 30142,\n",
       " 'ae6954023e17644d1a3a5accb0ed39ed': 30143,\n",
       " '0b38db0fa8f551e061b2c5f615df06ed': 30144,\n",
       " '8436a58f2c169aa8078f6a6e5c2657c0': 30145,\n",
       " '3c2a3e2679702ab3cb14d30ecd281b7e': 30146,\n",
       " '8babc977c07a6a5f5208d321a0a499fa': 30147,\n",
       " 'a491acbabfc601f1636eaab71d2f1be7': 30148,\n",
       " '08e935c5ca993a9f82c384b6849741c3': 30149,\n",
       " 'eadb345b9b1b53fdea3a5c44c6921032': 30150,\n",
       " '97e7cd6c73154549e1c35b5828582c1b': 30151,\n",
       " '50eda18b24c76235e66956f559c3ef19': 30152,\n",
       " '081df431f329f62a89ee7ae29a45c6c8': 30153,\n",
       " '5e451cb64c96e7dde46ba3434ee1e9f5': 30154,\n",
       " '0ecdc69ffc27e42191c43cf08458a3af': 30155,\n",
       " 'cffb06f328456b2bddec32cb349d6fdc': 30156,\n",
       " '6cda6ce6949614b994925c821384d7f1': 30157,\n",
       " '8ecdb51d1767dac670c392c3e27b628e': 30158,\n",
       " 'e9726a7780dcd953d5eb7e3327c7ad23': 30159,\n",
       " '1a1678834b177231998ef07398767eff': 30160,\n",
       " 'f2ca9f259fcb8be4b9dca28d9cad6557': 30161,\n",
       " '4bb6fc9fdf8a710ca7aa8ec5bd27bab6': 30162,\n",
       " 'f09d9d0e1b6a281bf2a952f053d95d31': 30163,\n",
       " 'c2e4437b9c3255b38b5bc54038ffe27a': 30164,\n",
       " '697b603e43de4af11350d45e09517b97': 30165,\n",
       " '08579463bda88f4147a8faaa47515f78': 30166,\n",
       " '26eb0350d2f37c165e77dc77c18b725e': 30167,\n",
       " '7d0a10d2568833c3b90d1118e86532a3': 30168,\n",
       " 'fab64b07f52d47623e139f929958367c': 30169,\n",
       " '591dda85900662fde01710b6a70d7554': 30170,\n",
       " 'f85b694047e624f6f68867ad8f5c33d9': 30171,\n",
       " '0b47b2f7a77b24496e899a0f756d1e8b': 30172,\n",
       " '8d49218351d4958a4e17fed16370824f': 30173,\n",
       " '1f491f5187d06bf5bcfc4f6dfb07f790': 30174,\n",
       " '44d6b54bb365f48da1f1b0aff21c5a42': 30175,\n",
       " '7a2a441d60195d0dbc1eb135f0feb81b': 30176,\n",
       " '06264b60aaf69cc35b98d0c287705f3e': 30177,\n",
       " '054a345a76068f46d9feb967f7a2219f': 30178,\n",
       " 'ef78fc5e60d4c4bd123e2c983507d09e': 30179,\n",
       " '9cc43fe2627a47233ce851ba857d6ac0': 30180,\n",
       " '9644c56fafc11838f9cbc05440155f00': 30181,\n",
       " '99219c75277b622ec0f873a6987d50ae': 30182,\n",
       " '2fb001c5bb8c4495e4293706b3557b74': 30183,\n",
       " '205f957a78f4d695a090280e8701f7fc': 30184,\n",
       " '9d64b7c987d58d759c9873657dcd9ea9': 30185,\n",
       " 'b7631a5da863262d8d2f76cda783d6a6': 30186,\n",
       " '399dfe21c2c8f106385c46c988bfa1a9': 30187,\n",
       " '37f4c46ced3137936a0f3d64c9528499': 30188,\n",
       " '085a20b961d5e9e663c0a72c7c9062ac': 30189,\n",
       " '0bb2d6617a179723a0bf7d527a03db3b': 30190,\n",
       " '1b1e5f2f716ef8989237f039803f73c9': 30191,\n",
       " '2965d10126bea878e89ccb58af19df8d': 30192,\n",
       " '11fe8808b99aeaafd7295ed56dd2bcf7': 30193,\n",
       " 'b6e6c12f8c2858e6be86639bf30f5a35': 30194,\n",
       " '185d7f629084b57600c7e7a30afd0f45': 30195,\n",
       " '1f882d6805b5ce5e30ae3d659cd8fea9': 30196,\n",
       " '7bde2ab4f66d5081a9caca6fb294d3fe': 30197,\n",
       " '20766f16f887c006f5ac0aa86a3eda03': 30198,\n",
       " '805ef7340c9b0b5cb1fdf761c53485fc': 30199,\n",
       " '1b7b551aa421d8f4f171ff661926fc1a': 30200,\n",
       " 'd69a97403ed65642f5427f4979820257': 30201,\n",
       " 'fd427f67e942baeea4aedae9202fa17c': 30202,\n",
       " '24e8b8c90f97d2b94f3e4cf9d84ca7a4': 30203,\n",
       " '0a30d25d3edbc17aed38124672e307e5': 30204,\n",
       " 'b66c4de45f6fe4c8c3b7a4be6b4b683a': 30205,\n",
       " '347aa2a2ee720dd64524a97ba59c1067': 30206,\n",
       " '216b9163106c16837aafb145784f79bc': 30207,\n",
       " '061409fcc86bfb112f2b42b1b7a7ab30': 30208,\n",
       " '1f3750c02a55ea853c9939161b55239f': 30209,\n",
       " '6a32a59c113668b20a2120eeef0bdb5f': 30210,\n",
       " '8d2ac536d0bc2ff0ce04bf648e998ff8': 30211,\n",
       " 'cab5aab591497ef29b7e8c90731eefda': 30212,\n",
       " 'c7f6756d3f7d993d69dd81bf84508b60': 30213,\n",
       " 'e0c2053d200ad3f4961a25dc60a1f9c9': 30214,\n",
       " 'e5c8318b50424c4b5c86a5f31516f3b7': 30215,\n",
       " '382fb8dc0bd7eb9abe5d6cac0d482c5b': 30216,\n",
       " '95856afd1e945024497ffe7aa51bde79': 30217,\n",
       " '7fb0fe19cfd40903f5c6cf74555482db': 30218,\n",
       " 'e332ea0a0e389c06b1db4aeba853d833': 30219,\n",
       " '14db31eb6abc46a97081114f0d90e049': 30220,\n",
       " '219477ee6abeb91f681610691d1862eb': 30221,\n",
       " '0fb0add6855833f6a3894f372a4133e8': 30222,\n",
       " 'bd17bdd81d0d41fa4d9d99de8c3195d5': 30223,\n",
       " '82f8d139b43f857684a07087b6e9e0d9': 30224,\n",
       " 'b18e361ed4eec19af56d873007cd81df': 30225,\n",
       " '803bd48c6b1dae2c154f032c98da5aa3': 30226,\n",
       " '302264e9d4b8ffd83b7727d166d7edc2': 30227,\n",
       " 'da0526b5c8d8ce08cc45514e1b177cf3': 30228,\n",
       " '4cba377d41266bb8ae40482af73100b6': 30229,\n",
       " 'e75795430eab27752ac1fc5a79d019d8': 30230,\n",
       " 'cbf60b04251daa14736abadc027a6ac3': 30231,\n",
       " '90ce60393d5fef1c3f48e257dfd41280': 30232,\n",
       " '2e51f504927225dcda6820d2e66923e4': 30233,\n",
       " 'd68e29ea2e28c422dd340d359495333b': 30234,\n",
       " '916e2b8dd5f0add2b2292cb565ffe090': 30235,\n",
       " 'db1725ca44489bacef717a17dd10eb71': 30236,\n",
       " 'adb7a4a8eeb22057d2141bb525552ebe': 30237,\n",
       " '71800ed8ebf3b1de7e96cfffa9896f24': 30238,\n",
       " 'f23fe903cbed140b5b5276057174a916': 30239,\n",
       " '6538bfd81fa8fcdcd9d73f9c1f1d41d4': 30240,\n",
       " '9d14f186f642b7911d6afd535b0b2576': 30241,\n",
       " 'c785bc3683634ce70291f90b77eda168': 30242,\n",
       " 'c20258f52fa4cc98d0d364403417bf06': 30243,\n",
       " '10756978c8884cbd72f3db336fd625c2': 30244,\n",
       " '6fab64259ec12d85c798d1d09e37cc59': 30245,\n",
       " '91dbbfd54893ac131f8e7c27382836d8': 30246,\n",
       " 'c943c541d5783a6e5870cfb0f719b669': 30247,\n",
       " 'e0d909d027d0ab37ddd225585ed99aed': 30248,\n",
       " '73c058a28ee11e40ae3b0c0d75d13c4e': 30249,\n",
       " 'b2c93273dc0d1a1f40e74accaf7d260b': 30250,\n",
       " '5a2964ba90d7769d9716a125fe62dd2f': 30251,\n",
       " '654edb5036b028ee9034f12dc76ce019': 30252,\n",
       " '2baa8d64ca048398e6ca919ce006d180': 30253,\n",
       " 'd1dadac40c35a2d70fed7149530059e1': 30254,\n",
       " '266abc9c0f3a23c8eb1e5dec3b79bd61': 30255,\n",
       " '3fdd7bc44fc142fef10c88beb926e4f9': 30256,\n",
       " '3d7852292d761b742a411f81cd04c472': 30257,\n",
       " '25f5cfbc77259839da556b57c9a9ede6': 30258,\n",
       " '4ba344ca52ff2b8adc68054be6590adc': 30259,\n",
       " '9f55acc05e0c24e11a39e67acd91d548': 30260,\n",
       " 'b3f99d250edcec6068850cba15da94f8': 30261,\n",
       " 'fc18f1298a6b89c1cc76b40ff1c2137c': 30262,\n",
       " '718f736c958886a63b71680d2158a157': 30263,\n",
       " '99e9f7dbebdacdb6e23ebdda2b75289a': 30264,\n",
       " 'caf0bf79ddf0d5b8fbd42785b504699e': 30265,\n",
       " 'ef18e3cb1c998cd6b3cd1f3e4ea5bdb2': 30266,\n",
       " 'fa3d100f567cfd4b6663646c1ebc88a6': 30267,\n",
       " 'ce82236702341ea16eea2daf1a295bdb': 30268,\n",
       " 'f13a503bd6e19020a4b4c9f70980d5b6': 30269,\n",
       " '5a78268b8bb057817f50d9e84651ce21': 30270,\n",
       " '6c622537a0169b28856bf6e66cd4861a': 30271,\n",
       " '5762309615fefdf1bdfa5edeca2be2d3': 30272,\n",
       " '55986f9567f6965f8513e752f2e129c1': 30273,\n",
       " '6e48f80f2d0e2c41c53f7d1b9902b9f4': 30274,\n",
       " '3d9f231a2714699b86c267e27709ac9c': 30275,\n",
       " '2705d7600ebbf53ef96c620f6d019e20': 30276,\n",
       " 'ea5e565bbf2780dd0f2313edf8b29a16': 30277,\n",
       " '6b6fb60115ddbdb60039427e85e0ffc9': 30278,\n",
       " 'e44b633c4254275f80f3ce1f44a35ea0': 30279,\n",
       " 'def9e8666a60b0ac2c1f2260a4299ad6': 30280,\n",
       " '88b268dfa92bb63eafc27d1c66db7368': 30281,\n",
       " '7a1f519068e76192ae502584406083a7': 30282,\n",
       " '866890278e381624202e669f0727e767': 30283,\n",
       " 'd4e2080d487416ab4e52fd47da3e7313': 30284,\n",
       " '82b4e141d695a40cdd16d81937e43538': 30285,\n",
       " '6b595cc5827adaef5319cfbe0cb32dfd': 30286,\n",
       " '22791f1e2774cedee29d17bee285a942': 30287,\n",
       " '5f2e139a2da03ae6bf858fdb42c5b330': 30288,\n",
       " '8f37a0c90852be94bc74f17662a0c317': 30289,\n",
       " 'be330097bf1b16f7b2746d5bc68eb140': 30290,\n",
       " '4aefdf284c1b0ed55212a786c6a5801d': 30291,\n",
       " 'a09031453283e8eb2373abe7345b7a73': 30292,\n",
       " '24d8ebf2a00df87dd59f4e2993b90144': 30293,\n",
       " 'f46d1da3e7b080ba1824c7af84c1f13d': 30294,\n",
       " '0bd1bffa0abfa53990515fd933d672e2': 30295,\n",
       " 'b9a21af0da0b7d627afbc807eaed632d': 30296,\n",
       " 'efa071a06520a201afbe5b673cebf09c': 30297,\n",
       " 'f880aece07c82fde6baa59fca96d0fff': 30298,\n",
       " '957b45c71af4db81f61eb61a3a59b4ff': 30299,\n",
       " '505f21e0d29c73f3bd71f52d87d95342': 30300,\n",
       " 'b3c6a44631bbaf1c8e23a8a6e2b32338': 30301,\n",
       " '93f7703fdb8f8a4bf54fcbb31179532a': 30302,\n",
       " 'e332e3fac256d98a126629272b754ccb': 30303,\n",
       " '14241d3d9f1a8348987913064248752c': 30304,\n",
       " 'e16bcab5d45efede824ae9c577deedcf': 30305,\n",
       " '07daf6a2dcedfc970815532b5d8d441c': 30306,\n",
       " '22fe62d1ff3c4177bdacd9622c937be4': 30307,\n",
       " 'df83dc34f0615d57dd34352d4a2c43f5': 30308,\n",
       " '122b34470d23d3e9521a51e85468bcf9': 30309,\n",
       " 'aa5621d39292e74a7eb6c8eb0ac7c8e1': 30310,\n",
       " '51dd9acceabef2b1bce727aed78c5e30': 30311,\n",
       " 'e48f50a47650bb4babcde082a63ef217': 30312,\n",
       " '579eb71b604ba86e63a86995f48ea5c7': 30313,\n",
       " 'ab4011159685ad70ab7eed7b657f82c8': 30314,\n",
       " '0aea489234d7900b00c601e01c7d5108': 30315,\n",
       " '066558d83d0076c484811edfc8e82ae1': 30316,\n",
       " '0bf8317281cba1b1d21a7709b56460d6': 30317,\n",
       " 'fe8ad5be500f0390712f5554e221d3d8': 30318,\n",
       " '2374d0a58172fe8d70d7aff2ebeb1f60': 30319,\n",
       " 'e5ebdfa33aa7dda2b770c976d687f234': 30320,\n",
       " 'e76122ea68824ed3f09b3380dda83bd4': 30321,\n",
       " '98162ef01a259d8f8925ff95a9baa515': 30322,\n",
       " '29adcca76f2d79fc422d3b6c6f465080': 30323,\n",
       " 'ac2dda555726348cea5658b82b10b9de': 30324,\n",
       " '921946175209ba09af2acba86090a6d9': 30325,\n",
       " '96b83979c32618ec60d41428707134c2': 30326,\n",
       " '07f97967defe451bedcb7f6173c8bbe7': 30327,\n",
       " '4374fde609146ce0be1b58c31a54a8f1': 30328,\n",
       " '7208f97c3969e733b2f2789132ab6e0c': 30329,\n",
       " '3eb84e8331c5505ee1c45ddd2a967a2d': 30330,\n",
       " '4185f7ffaab5d25b77303fd66d01d884': 30331,\n",
       " '42f699308fb1fc4f57770a030b68d640': 30332,\n",
       " '94dbe92a72d7c41ad396e9e2a111ff85': 30333,\n",
       " '88ca2f65ef11bfbf2021e327a8bff451': 30334,\n",
       " '419e8c79dfd38cc7bf97cd044be3eec7': 30335,\n",
       " 'fc92f1719686a0fb8d375c8ea789443d': 30336,\n",
       " '4473945d8bd3828f7aaac63034c93a1c': 30337,\n",
       " '331b7d99972a0ed9922d03ea3e5318c5': 30338,\n",
       " '1dd14bba42849ef3829caf866070af13': 30339,\n",
       " '9a0456c753fee58f16519c55950783b2': 30340,\n",
       " '84fc451be8022655370f391ef3e22d33': 30341,\n",
       " '762d1d8ae2455f85053581f53cad62c4': 30342,\n",
       " '749705e16944663f105af4b4d40f6ed3': 30343,\n",
       " '3f330fbc65b2285d6454abb6598325a5': 30344,\n",
       " '84e80fbe619f54a63e30d808c963f59d': 30345,\n",
       " 'f443a8937b56c9327d1e804b0f9b5607': 30346,\n",
       " '02dff38bf023149e18c2dd8ee0d0e12c': 30347,\n",
       " '60dabb3082061da8909af142828bb4b8': 30348,\n",
       " '8c27e08e9bbf8919f762d9f1c2d934a6': 30349,\n",
       " 'cfeac5eaea87888bf75dee44682972b6': 30350,\n",
       " 'c5d13be5276ff3ed27dfeb3f18439c06': 30351,\n",
       " '902ee4bf679aaab1b317a2cba77eb450': 30352,\n",
       " '0534ea36b83ab3ebcbe39223e2800639': 30353,\n",
       " '026c4f3727984a22ac420dd3fac7988e': 30354,\n",
       " '175e6de7af2fa03a2bb5fe1d05c50431': 30355,\n",
       " 'edc9f2038972408252f95dbab17b7a49': 30356,\n",
       " 'ae79231fb843e5449eb8a2f8f4742b4d': 30357,\n",
       " 'f168edc78050fb78eecdd7f190abc521': 30358,\n",
       " '01999931f327123af4c877000b506fd4': 30359,\n",
       " 'd4d84ab84d1e3fd91f8ead644ab5aca2': 30360,\n",
       " 'f0da8c17f953ad5b099bff158b212522': 30361,\n",
       " '62d19e2a62cd615f6eb7aa270d1224cd': 30362,\n",
       " '2ca572c3105271b302f0b8c5e5d262f9': 30363,\n",
       " 'f844791dd89ba34107a4743b63bf4666': 30364,\n",
       " '30c62a42eb89045af7e93c7cda54d4e0': 30365,\n",
       " '4dd1611d9745692af41e6d72ca581df6': 30366,\n",
       " '97ede0ec13590e1742b18cd3547eadfd': 30367,\n",
       " 'f77ee426a02de1ff8f77d29bc523ea74': 30368,\n",
       " '3a07caf55a6914752642ff976e3822ac': 30369,\n",
       " 'b2f59748a2836d8d844bbe42c69deae2': 30370,\n",
       " 'e9897e608c558cc9c20e195b702c08ff': 30371,\n",
       " '2925eb1b2b47d91ebb8d353c3c1465bd': 30372,\n",
       " '9976b24e0c3be5d038deed21138e89c0': 30373,\n",
       " '28836d7583edca0600c57a0fa6456862': 30374,\n",
       " 'f03a8b3afe02d4d04fb503a9a5dff894': 30375,\n",
       " '3cfc6e13b81ef2d8eff48ca64f1e793f': 30376,\n",
       " '7b3caa8622ac75802c71729e3dc7cc63': 30377,\n",
       " '7bc0f76f23cb21e70fc9081d6d9e170e': 30378,\n",
       " '3f74367a26f002d88666b06cbc09098d': 30379,\n",
       " 'e555abc96f521f8d304383f658ed5716': 30380,\n",
       " '99f871fa874d089b8f532ef3736e7dd8': 30381,\n",
       " '7414d2639dd3373096401b583b8f3b2f': 30382,\n",
       " '44d0ff18605d13be0b0e740df5d064eb': 30383,\n",
       " '57b1073c55277185780fd712070bbfcc': 30384,\n",
       " 'b03818b1699231fc2fc432a2b8d2e399': 30385,\n",
       " 'd684cfd6dcdded99bc2cd9f6a475ecd1': 30386,\n",
       " '187d8574a5f7bdfd7c6f7dc05d2d2628': 30387,\n",
       " '7b0fb822ff97626e2689329172c5da39': 30388,\n",
       " '9e60a9039251f3a93e76e62e25934368': 30389,\n",
       " '46ef76c53c71168c380b29650a2f9635': 30390,\n",
       " 'e38dff286719745f88851e76afb70b99': 30391,\n",
       " '6dad626e6638f5d66b33c6646278fb5f': 30392,\n",
       " 'a55663125aab06132b4692183fc10d86': 30393,\n",
       " '84d68fcb010fd7e82875134924c771ab': 30394,\n",
       " '827562af816315469152d1e09058eeff': 30395,\n",
       " 'a4ba7aa2d56f66a417fff86f789a435a': 30396,\n",
       " '67e0928bfcfbe112328a1030a042be77': 30397,\n",
       " '6c002b9c3d64e5e7a07445e1bbe723ef': 30398,\n",
       " 'ec9f36f239b4c417c2e02251d8e9b817': 30399,\n",
       " '35491c94dd9e05530af5d4bb639ce45b': 30400,\n",
       " '95a9d79c7d4a5fc40e7d42f58ba5512e': 30401,\n",
       " 'f5f886fe8556d38e863a21d4b2742b82': 30402,\n",
       " '08ccd6ff307252ebbc44501e37201f7c': 30403,\n",
       " '0f077b68c40a51accd5fd615c648ee0f': 30404,\n",
       " 'dc501a5a0c24bb77c395e117752fddc8': 30405,\n",
       " 'f5260039dacd9067b7fbb6a97f34dc21': 30406,\n",
       " '60db068a09dbb5fd9c683799f56dcf14': 30407,\n",
       " 'fe83176f34f675dac018abfeb2051b0f': 30408,\n",
       " 'bed1aff518d16702dd2c2a9c611833f7': 30409,\n",
       " 'a14980c87fdc2f1173a75a18129bbe78': 30410,\n",
       " '85b5d5ad056edbc5bd67102e4f5eaa6a': 30411,\n",
       " '1c2a49d5ae094abb5a4ba860b88b7391': 30412,\n",
       " '208985665609614b7dd4af8c3d65b0a1': 30413,\n",
       " '3b337c9d4ae63168dbf45c5544e6403a': 30414,\n",
       " 'f4e2479efb5cac9771719064a1aaed4e': 30415,\n",
       " '533223c4a61d7e5b18dc6d2786d51c9a': 30416,\n",
       " '059432b827abe14a6e91b9b2d0694c28': 30417,\n",
       " '1197a527936f7a45db69652112aa1829': 30418,\n",
       " '70b0167538e08c1ca1053da151bf0b10': 30419,\n",
       " '6928a811bcd22a67b01bd5c437d975ae': 30420,\n",
       " '34f90e17232923bb024fb4a87125a984': 30421,\n",
       " '480350215d210d5e1d049919a05aca13': 30422,\n",
       " 'df375ada65c8036d39bb5624ca843581': 30423,\n",
       " '39fe0f642946ee5e016e96060094da88': 30424,\n",
       " '62ea2159562c1315dac30bbef8e549b5': 30425,\n",
       " '50a78cea0bc94ad4f7195e714cfab519': 30426,\n",
       " '2a560df780e70b5cdbaab66f4563f10b': 30427,\n",
       " 'e7ff0f7b05f690b6656f87a804f2bed2': 30428,\n",
       " '1da8d14de17e71f683b4b1963c624707': 30429,\n",
       " '5b8baa2d00bba139423ef61e5c20228b': 30430,\n",
       " '788635e4da1ed3442afd380f7eb3f6af': 30431,\n",
       " '62d18faf54e2b636e3d7530750874b0c': 30432,\n",
       " 'c2311311d2fd1365e948bf5a4c4e3b08': 30433,\n",
       " 'eea0648f38b6dbdd7f12e6d47e0677e9': 30434,\n",
       " '707c93ff48ad4f0a93cff9d3c02f9562': 30435,\n",
       " '3301150f70b1cf6bb0590d548cacab8c': 30436,\n",
       " '889e3ef124d484b37aef45a9a605387e': 30437,\n",
       " 'a7263c2b0b4208cfb4a8d91638ecf92f': 30438,\n",
       " '0bd91516fd8acf20fde3f98a3f5bd3a5': 30439,\n",
       " '5a4791fc8ebe766acc37977e0eb60303': 30440,\n",
       " '2a8296a13d53aae165ef9b477705c140': 30441,\n",
       " 'e6f8f47a41aab72c3593303568d4e169': 30442,\n",
       " 'e663a081a36e8688860bdaf6ad07f903': 30443,\n",
       " '0021fd70fe9654da0544f842bc6695e2': 30444,\n",
       " 'd08d5c65332581f0015e4ae929753b0e': 30445,\n",
       " 'cdd49bc9fb544c91f868b76fab855a4f': 30446,\n",
       " '3305c419529b399b6199bee3654ae18f': 30447,\n",
       " 'ae561eb61e4a143fc248d48fdb058695': 30448,\n",
       " '503804a647e927bf797f94a77351be1c': 30449,\n",
       " '5e9b20d95adc57b9ae78136caac8401b': 30450,\n",
       " '1d157405cf4faf4644bbbcd8407b23f4': 30451,\n",
       " '597ca3de2723c528380c8dd3d580eabb': 30452,\n",
       " 'c45a78f05f10169abceeb5750dbae4a5': 30453,\n",
       " '6a711a42cfb2c22f99492b8e68ab1a0f': 30454,\n",
       " '79166287628a0b2cb4db5221fb66228a': 30455,\n",
       " 'dd3b6562a53032acee9ac9ac2f69729e': 30456,\n",
       " '0c7d04999ac155dee64f8d79cfd8e47c': 30457,\n",
       " 'e6025c9b0515c23a01a56cb4a0606ecc': 30458,\n",
       " 'cf570b821e55b7c5ab7c009aac70dfb1': 30459,\n",
       " '709051ec85e5c9f1b830fb4eb1af3114': 30460,\n",
       " '6b1e997c379995fc7a4815b6a28918bc': 30461,\n",
       " '5185deb8d6003b5a3c99072a76e3db26': 30462,\n",
       " 'dba253d5f4c369ce928ed5506169376e': 30463,\n",
       " '56252fd4be2ee19ee0c00501b6ef441b': 30464,\n",
       " '34c110c1c797ee0870996ca7d615f2d5': 30465,\n",
       " 'fd137c74fd62e0f5fc7b6318264c3400': 30466,\n",
       " '49f0f3278b428644e247413ea00a4be7': 30467,\n",
       " '14d5846bb2d70572d1a92e181fd2289b': 30468,\n",
       " '5e334e49c9d7ea683b5af993460a190b': 30469,\n",
       " 'b2934142bc8269e155a191b8d05e3d4f': 30470,\n",
       " '3831d5601d03071dd925db2f3bdd6aba': 30471,\n",
       " '45f26cd8f0f3e9411203176092830c1f': 30472,\n",
       " 'b90d5a92f87041efb5d2daf4da059dac': 30473,\n",
       " '0ba1e8498e828ebaeef8907207ac099a': 30474,\n",
       " '5cc338ce1f56e359ec52363b67cc73b1': 30475,\n",
       " '08ef0114aa8a9fabdb2ac6fc2a401db4': 30476,\n",
       " 'd90c97d58ae510ed576d17addc0a92cb': 30477,\n",
       " 'dc4b8988876081519b7362e9e80f87f0': 30478,\n",
       " '07b04e647ba9dce147b0a02283ef8e47': 30479,\n",
       " 'c8e1cd71c65269f7574c84ecfbc528dd': 30480,\n",
       " '77e5f6753038faf30ada17b19d84626a': 30481,\n",
       " '1ca4728ae5b50dadf75c55fc4ea52884': 30482,\n",
       " '1b1856fec790b803ae22c9f9efcaa17d': 30483,\n",
       " '7eb8fdea97c6db7069d5e81526b0aeff': 30484,\n",
       " '4717a523dbbd0e70c107e2618f435970': 30485,\n",
       " 'e6e9a2246726adf3cf5587732dbf1044': 30486,\n",
       " 'a12ddddece31a06b674e41d00c120a35': 30487,\n",
       " 'c902f019dd1eb8e540677f6a577db8e1': 30488,\n",
       " 'efe777025214d34d5fcd8957a5b3d47f': 30489,\n",
       " 'fb57598a328c3b633c3c26d7e72661a6': 30490,\n",
       " '606665d393df61ae6174a3367b1340ac': 30491,\n",
       " '28e736884bf4fb613e0622e8bc7ca08c': 30492,\n",
       " '8c7a3dd545e9d8f6fee47d3a61d7c3a9': 30493,\n",
       " 'fcc1e89f5a18755e626dabe018b503de': 30494,\n",
       " '7681d981168ae17e235169897ba71450': 30495,\n",
       " '1e4927bcf2ce852a3e6c38ea7c07a2e4': 30496,\n",
       " '2b05f21917c1aa9482685fc0ffa16e23': 30497,\n",
       " '7ea6757e17cb281a4dcb0e702b6364ce': 30498,\n",
       " '9e02a5acc0c4e430e82e4252c1326754': 30499,\n",
       " 'a1f1b2b0ee8fb247d3c38aa678ecce08': 30500,\n",
       " 'e1d684055594de70eda7e54bc8e810fb': 30501,\n",
       " 'e7bc79d1b2cdcdb219bb97a30e9d402a': 30502,\n",
       " 'fa1a84ad6b58071b1c3df619c8954687': 30503,\n",
       " 'bed8e189c7dcdd9aea270c11dd642f74': 30504,\n",
       " '4562db1c952f83242ffac0021067a257': 30505,\n",
       " '27c7065378209190a8fcb7298eef5822': 30506,\n",
       " '4bffd99ab2436f2fa92f93a5ce01e5ca': 30507,\n",
       " 'd3e82b7d1309a2a8dbb7a9983cd66bba': 30508,\n",
       " 'a73050f048a09b3708d6883de83c749c': 30509,\n",
       " '954cdd52814abe379962a064f52cb95f': 30510,\n",
       " '3d6511713ae3a68ff1cbee38458f25f8': 30511,\n",
       " '3a5a9e6f240ff3998cbe208fe4feb864': 30512,\n",
       " '0676728609800ff20945022efbcd961c': 30513,\n",
       " 'd21277127675b5d51225ad60ce4ab9c6': 30514,\n",
       " '54c84c79d483436cf9b20dd025291d2c': 30515,\n",
       " 'd2547010b6c7693bd4aab604d505b8fc': 30516,\n",
       " 'ec4424adedf2ec7fc48c3bfeed54ef25': 30517,\n",
       " '1090f73bb072604a7a7109d0c641306b': 30518,\n",
       " 'd7d99034f478212d45ce9fac436532ef': 30519,\n",
       " '6dee99cf62b0f177b4467b8c287f90f8': 30520,\n",
       " 'c098a8f2bddc66cc97034adaa78d3f01': 30521,\n",
       " 'a0f33ee1120e56da027bbd8ca284476d': 30522,\n",
       " '1c7f503f38cb42f2f6ffd7b86155a6da': 30523,\n",
       " '8956d76eb9c80eb7a93a7e230b7b7709': 30524,\n",
       " '79b31030c8f937f2c0110193c9743c4b': 30525,\n",
       " '69119b238204ce0022a614b2787cdeed': 30526,\n",
       " 'd2e8cb42ca2e9da84cf92c8fed7a23b2': 30527,\n",
       " '87196f48bb6daf0ba2e31e65d569c0a4': 30528,\n",
       " 'c32ca07aa23878075ac4f49cde56e0eb': 30529,\n",
       " 'f190ac15870b4870033ba81e79de06a2': 30530,\n",
       " 'b4f8ff4a5bca7e0938cc63280afdf9bf': 30531,\n",
       " '141639677bdd1dd5ed0705f4eb43bdc9': 30532,\n",
       " '954e4b5c716b09d04ecc19b6754b9fc7': 30533,\n",
       " 'b014c9d42999fef38c06192d68189984': 30534,\n",
       " 'a994b0d84abcda966947a3ea0a77d8e1': 30535,\n",
       " '871dd51eba004165e60c4f3738bb0892': 30536,\n",
       " '2c7a9538220c7cf6da3e30ebcc0c4838': 30537,\n",
       " 'fbac4b3d62bf429bbc356e4c6f45b87f': 30538,\n",
       " '6f7602c534ce83d367b3c53a4f36c0b7': 30539,\n",
       " 'd750c7b30e85efceb15f9838548fc085': 30540,\n",
       " '4fcd26ac2390e3f54d1a72b87ba4c77c': 30541,\n",
       " '7c134ea8df6ab6e78143eba0a3445e6e': 30542,\n",
       " '0c883e4a18c193c84e9c4785adb4d847': 30543,\n",
       " '19de7741b9d2fb317b820984cd7b46dd': 30544,\n",
       " 'ec9817ef0722f3c76138dbc83228dc4c': 30545,\n",
       " '3271d5953121d680d7dbd6dc636d3e5d': 30546,\n",
       " '5ecdda7fe15c3714f848a4f3e877b335': 30547,\n",
       " '51267820d9645e83602584a17b31de10': 30548,\n",
       " '42ac663921f03535e93498584e213399': 30549,\n",
       " '28434be616a48e3afd41fad989618c59': 30550,\n",
       " 'bb291924c8ffd9ff2e44b1ed0f3f4ab3': 30551,\n",
       " 'baf8047a1550beb98d4ec50f73dc68ef': 30552,\n",
       " '684d2daf7e56a338a753a9f86406eab1': 30553,\n",
       " 'a1b8ce7cb0a43f156e2eaed3bfe3a1de': 30554,\n",
       " 'c74db03d9a6a4f8ba710ae90443ea5a7': 30555,\n",
       " '234277677a301203b2369544d52c40a6': 30556,\n",
       " 'dc50a84b1163f535cb5712627ad5074c': 30557,\n",
       " '1365f5ae48dbedeb7a3eb77c544ec744': 30558,\n",
       " '5c31eb0fe13a69cde0ed215a62916f2a': 30559,\n",
       " '49583e3c50188987c3d4c7fa9e976ce8': 30560,\n",
       " 'b876d76916a8e59fcd3a3d93df1eb074': 30561,\n",
       " '8c46781ac04196a16a12d1ab3558bafd': 30562,\n",
       " '1207bb574951d508de0d767f41635326': 30563,\n",
       " 'db606837d7882ce41033ae5cb4e3423a': 30564,\n",
       " 'a06e1d9c5a8c1153a54e4afb9283989b': 30565,\n",
       " 'a9eee1b73729a160607c5207d1564910': 30566,\n",
       " '0a107d4146b08e3c07cbe2732ba34412': 30567,\n",
       " '8894a3672eaf305ad6b8a910f0097e6d': 30568,\n",
       " 'a8364563482cbf0abf68e0723a6e9dba': 30569,\n",
       " 'fac407cd3575f4e6582da2dbc8884d36': 30570,\n",
       " '6ccef8d221228afc009630d87edc1d3c': 30571,\n",
       " '8c80d48fa13933118eee61784a57e520': 30572,\n",
       " '50059fc8ea6e4eddfe7fade624536a4b': 30573,\n",
       " '7e9c391cc6a253f16a58154db5c4fc54': 30574,\n",
       " 'a8995d22e8f6d654593be1b128d8dba9': 30575,\n",
       " '7de85a1fc2f6a0713ebf8f6b51d64ec1': 30576,\n",
       " 'aa985d8a9150f995bfaddcad6b0cd9df': 30577,\n",
       " 'e92f15f0fceb73e383b19864cfc0f60d': 30578,\n",
       " '509af0f77adb5aa524efa26faa303d6e': 30579,\n",
       " 'da000c584e979a959ff627dd338bd19c': 30580,\n",
       " 'add735def352370b54b611b0af274ffc': 30581,\n",
       " '32070fc93dd29124f79b05691fdd6194': 30582,\n",
       " '36737a6454f0bd9c54b66cb24cd99059': 30583,\n",
       " '317ae6bdbfb3c0fb08a410f936f312a5': 30584,\n",
       " 'a7c73b469f191f80f28d2cdd10d1b350': 30585,\n",
       " '1873b8fb45bced826f453d98cb34f1b9': 30586,\n",
       " '65496d29d1bc4e448dcedea5270d090b': 30587,\n",
       " '75c29a61e7bc4edbf9cd8ca6a5700225': 30588,\n",
       " 'e6b1af6e30eb55f968df5dad18ed06ca': 30589,\n",
       " 'd389e44de2d8a7bcd015207a66041ff2': 30590,\n",
       " '668c4590bbd9add9aa07e8b650660e10': 30591,\n",
       " '2fa054198c0457a5e71d8208b0f07486': 30592,\n",
       " 'd36fa40929b1f8432bbe41cedba6be88': 30593,\n",
       " '8ef8fb045f20239d5571502015983813': 30594,\n",
       " '7f0e4b0c2a2e9fe80cc1f91ae8002b2d': 30595,\n",
       " '9f817a063b3ce4df8a3c542a7a94172b': 30596,\n",
       " '2cbf98a57daf00598348b2713d803e5c': 30597,\n",
       " 'ff8f29dc0ee3c557172c2d8bc5899ee2': 30598,\n",
       " '70ceef8cb8d7badc7eb7ec3133200df3': 30599,\n",
       " '2a58d1f0d5d3f8dd96c1e1db8e1b2fdb': 30600,\n",
       " '5d6df9b8d1d1c23c50370c58d05e0a8e': 30601,\n",
       " 'a9a8edb591ce583a63a35341f58157f9': 30602,\n",
       " '195352c2c9e1731e1f89425c951ef414': 30603,\n",
       " 'c769db84b715b37ed5a3413a60f9d07c': 30604,\n",
       " 'dcc8a740a038183b95da8f1e5587ad76': 30605,\n",
       " '52529d15654ac6bec737f9643944a4ed': 30606,\n",
       " '07f6c381374a16b4009f119bfc2ed3ab': 30607,\n",
       " 'bf4ea60bc9a1dbf877c6dbbc86cae6ba': 30608,\n",
       " '28acae3cec911c0ed993c04886108982': 30609,\n",
       " 'cc8b5b4214e63ca576ed4a31697d9b11': 30610,\n",
       " '7f704dd1dd65b57fe9f6dffbe73a6151': 30611,\n",
       " '1be018cc3864eb79e9a42b7bf810f9f1': 30612,\n",
       " '950efcd17bfd1c64a01e17fd2f374b7b': 30613,\n",
       " '6647af583068f90a3943ed6cb73a15d7': 30614,\n",
       " '0972098cb169ef5713a22ed017b8cb31': 30615,\n",
       " '421597a126d1b01d237f36ce2c80b1e2': 30616,\n",
       " '103e799d4e406539f0568ac4afb493db': 30617,\n",
       " '35d8db87b0b762ab9e37d629ee71f513': 30618,\n",
       " 'fa027456957c3a7130cf98ab4b2dad7d': 30619,\n",
       " 'a7ec3626e382cfb099030756b40724e3': 30620,\n",
       " '8f73c388e6fe49050411090c4d286164': 30621,\n",
       " 'ecb44a8ce332b3d33442a50a1417f492': 30622,\n",
       " '828d7ac3f8297502a4dcdf51df40a72c': 30623,\n",
       " 'ea1c9e9d8eab8d0240396d80db18db12': 30624,\n",
       " 'ad9e2773dcacb3ccb9de07fc84ea855e': 30625,\n",
       " '3ff5059da7d708d6025ee02e138f1cb7': 30626,\n",
       " '32dafc73881ddd6e24c16fdf07f89e31': 30627,\n",
       " '0a04c2c2588a2fc081aee59cf6bc478d': 30628,\n",
       " '8c1f35d12a1d6dc066d93d4bf277205a': 30629,\n",
       " 'cbd1705dd915139a9a40c0070cc11ecb': 30630,\n",
       " '1a77c2912b7afcef9f73f042f21289de': 30631,\n",
       " '33079983da11902aade9c1cc75e70dec': 30632,\n",
       " '5e6abd40351c83edf1c3d18d1571ed0b': 30633,\n",
       " 'ce1e4f5de564133c59f2070d751c54d6': 30634,\n",
       " '9b8a43a65bc480b8ae0b53f0e04e8505': 30635,\n",
       " '00099e0706a48436e7504fd1f1e27c7b': 30636,\n",
       " 'e6bb291678a9164fc427ae01341a4bc4': 30637,\n",
       " '42b1af092ccafcfee3a7d13e40ddf128': 30638,\n",
       " '49b51d22be849f491f29f5918a0ed95a': 30639,\n",
       " '4867e0cffcd8ad2ed9eff180a36823c8': 30640,\n",
       " 'a63d9e026dcba74b165931fc5d5b0330': 30641,\n",
       " '16af940e1686e900a6c67216ee806070': 30642,\n",
       " 'bb76311f4f719f9a71cde4e6eb597539': 30643,\n",
       " '67920e03d1da9639390d218a5e9a1385': 30644,\n",
       " 'c74ab984bcbbc1c0c1a75e2a17edac95': 30645,\n",
       " 'a6387adc54a4493376c0d12be63ba022': 30646,\n",
       " '8aa464bf2b24ca086505d529ea909419': 30647,\n",
       " '256220c3663234b52cceacbbf4f75ce0': 30648,\n",
       " '27fe91820fc393532692382c79861a4f': 30649,\n",
       " '2491d20da5ec161e80da3a9c8a9bcd23': 30650,\n",
       " '806e2fb80833e0619100c6c3f0bebe79': 30651,\n",
       " '7e667bc60af713bb75d9cebb8d375b16': 30652,\n",
       " '342e50054d137143dbde985a2dc95d22': 30653,\n",
       " 'd87c562705463564eca484cecce336a0': 30654,\n",
       " 'd1614e3f05bb578b60e814fa11122a95': 30655,\n",
       " '22053379487639e94f7c3a96c8ee6a38': 30656,\n",
       " '61d894ad6e9de407b2266867c95e28c1': 30657,\n",
       " '55bbd4a30d2630e1fadbc2f3227b3cb6': 30658,\n",
       " '97ca961871b3b38f19581e5cbcc5b309': 30659,\n",
       " 'c0ba8a3604aed3ae47ad485a8decee5b': 30660,\n",
       " 'b954e13443b0be703af8ec99c85d693e': 30661,\n",
       " 'ed7fb5c1675e11bd32644ede44adc2f4': 30662,\n",
       " '34d77ccbe447a554e222732c793181b4': 30663,\n",
       " '9a5e42bd2322f42062e20957beca01ef': 30664,\n",
       " 'f4d580f6adba222dd45842b65d3eb104': 30665,\n",
       " 'b31fc09655ff4eea89f85a93a9ddc3a3': 30666,\n",
       " '8c82c42e6b95f073b187434b47edcdfe': 30667,\n",
       " '71f61a8bc93e8736227595857f9a7b16': 30668,\n",
       " 'e07d4aa1049f6754eadb1b3b650b0a46': 30669,\n",
       " 'aa79cb86faa21560b644f3a2ae7fa5f5': 30670,\n",
       " '5c6a57a7a40278b007fc06317db10c9c': 30671,\n",
       " 'a26bd55840bcb219277a81026b6c578d': 30672,\n",
       " 'a9072a99b027dd40633739546dee3560': 30673,\n",
       " '83f246ef1ac0b0cd38e30a36bbe81469': 30674,\n",
       " '8604774f3bc2d38bfdeb4dda7352bbac': 30675,\n",
       " '4ae9a29bd33d2c72d76e81e2eebf2e86': 30676,\n",
       " '6f3397ae70f8bc2f38488a139b0435a8': 30677,\n",
       " 'b9f18f61c1fb21653d62a4a32ace8a9f': 30678,\n",
       " '66e57e18d8342c3b1373a42bdafc314a': 30679,\n",
       " 'f6840f0349b5f94cac7129c2873485cd': 30680,\n",
       " '34cca1398ad8eea3a93e0c893a676a58': 30681,\n",
       " '8c4a085791f4abde00c82e23da625e7e': 30682,\n",
       " 'c6ed8f3e5956b759b34bbe461fca6108': 30683,\n",
       " '2eccb9081532339bb36f977f9765ae58': 30684,\n",
       " '217a985a7417e7b8ecd85e1c721c3035': 30685,\n",
       " 'd52f7b8574fee279b99e64a2704cc3a0': 30686,\n",
       " '75f1403a16d50f411e77ca86a019e3dd': 30687,\n",
       " '2464b6ac454cac25692696324b81df1f': 30688,\n",
       " '581e2299898e236c7be104b6505134f7': 30689,\n",
       " 'b0922a25186eae2096a1b0abf1cc6a4c': 30690,\n",
       " '37cb6d77fbfd0d4b63331497614ca919': 30691,\n",
       " '4685febf6dc1cb38b859204bb3c7d891': 30692,\n",
       " '1e49181afb595aedbcfa34024973bccf': 30693,\n",
       " '2143ffa92eb98f7f55a4e46ff29de180': 30694,\n",
       " '64c7ec7bc674f664d23bd0f798b5fc7e': 30695,\n",
       " '2a52d96a823679949d4380867f12a527': 30696,\n",
       " '6c592810e5dfc0cd0d208f9965517b9d': 30697,\n",
       " '2689cfcdbb1eee1dd372eeccf111ebc8': 30698,\n",
       " '752aa7dc52fc52b241a9560a9227f3c9': 30699,\n",
       " '06babe66580e6c6693c80e95cfe1ce4d': 30700,\n",
       " '5b06164ec35a46dfcfb365d8bebde6f1': 30701,\n",
       " 'c31ddaef2e466b90b33800921a10bebf': 30702,\n",
       " 'feb57b193d654d6fd21171d95dad70a9': 30703,\n",
       " 'e8b3161ec6b52eb14e477185fbb03ba7': 30704,\n",
       " '4ef0a9f64e68ada64b1ae27b089a81af': 30705,\n",
       " '3fdbc6d3086e286efd4bcfc7f239283a': 30706,\n",
       " '008c35baaaa6f208b3ef09b10ebc4098': 30707,\n",
       " 'ad2b17391ef7e4a0b0cbb03f98dd93db': 30708,\n",
       " '41ab958a5a51193da6a742be44acf505': 30709,\n",
       " '2e35d72baba54f87980fa2335bc1e7e9': 30710,\n",
       " '7b51dedeab0b492971d0423c35795e80': 30711,\n",
       " '9dad645ef3d4ea05334ad16caa8ddc57': 30712,\n",
       " '17730fe563d9ebbacd5f9746f4f28b07': 30713,\n",
       " '49305185afefa86b1f1f46bd156605af': 30714,\n",
       " 'b062cf5a8ae345281607c4904e0a4881': 30715,\n",
       " 'e7014b6ccb7dc15bee0afa5753fd1d77': 30716,\n",
       " 'b6a457de3912bf162025de45990f4771': 30717,\n",
       " 'fb77f39bfc791cbeba8daa2ae2dbc435': 30718,\n",
       " 'ccbfe2f9e9c373eb7f1747e2691ce6e1': 30719,\n",
       " '5f8e8dcadaf71f69dfe5133baa282ecc': 30720,\n",
       " '7cf94b49569fc0df9982b9b03caf04c9': 30721,\n",
       " '4dda64e85fc489ec29d654b3d92ae8da': 30722,\n",
       " '0c68b19cf579e7d0038c3e9f6bd94ff9': 30723,\n",
       " '5e18abde83f809cbc332c50fc5e7ef13': 30724,\n",
       " 'da19276d97df45e61f5a2b6d09c57389': 30725,\n",
       " '9e4729ca9593ed81cb6ca953956da78f': 30726,\n",
       " 'a028ee90336c8e85403745bd9a1a277d': 30727,\n",
       " '75c2fa5676355f2e1dda7392bffb820b': 30728,\n",
       " '1a353569213fc589bfaacdc52e1f714f': 30729,\n",
       " '053fb7f6df9ed67c4bda89a317e6c128': 30730,\n",
       " 'cc5c34d03ef49279ea4e77d817cdb02e': 30731,\n",
       " 'd99ae2bac936534fd9c284de2d2cc365': 30732,\n",
       " 'acc0aeed5a89f0dda094c403ae4f71fb': 30733,\n",
       " '27d7fd179138815dd636b391868c1752': 30734,\n",
       " '1f59aecce0eda39759d35883747c170a': 30735,\n",
       " '8cb7b32b38dfc9fa5bd7dffab692f01b': 30736,\n",
       " '0135286b9c4d512d9bd1f1e18b49ebd0': 30737,\n",
       " '8c164f4073824cd1cda7eab66bc018dd': 30738,\n",
       " '25625b6b29efe8ecdac82f780d973b1c': 30739,\n",
       " 'd85449553b97dd31d39f32edc265c8e8': 30740,\n",
       " 'f3fd94e1fc9081a34a8c782835edf63f': 30741,\n",
       " '9dff34a09e0d2c5f695a9f4db852f76b': 30742,\n",
       " 'e4ee9924643a0cdce74f80dff0ff42d8': 30743,\n",
       " '33d66c811da2f27d6b4ed854456883c1': 30744,\n",
       " '16820373264e01c735002d3b78a6540d': 30745,\n",
       " '542e4253688327d8d76c7d26c32acc40': 30746,\n",
       " '2a2b8393d701957e2ddcc44bd21a2b71': 30747,\n",
       " '8f2914feac336a8afbe6d7db185baf80': 30748,\n",
       " '16b5430cdb2418a62d09e41030ca909b': 30749,\n",
       " '91c66ae3e25d8d316cca4afd84826e07': 30750,\n",
       " '9f171e9c6a8bf7a0733b0ca0f0bcc2ea': 30751,\n",
       " 'ab0014e152078800eb4eb206be9d166e': 30752,\n",
       " '6cbd909ca8aca79613a1a888d4884440': 30753,\n",
       " '5c695873c1811b6b5e0a4f5aa1cba5a1': 30754,\n",
       " 'defd5c1ea208efe82e5e70330abb2949': 30755,\n",
       " 'caf84614697fd5439f1e4ba424987539': 30756,\n",
       " '63c6c9c981348d8e6b2ac8b015256224': 30757,\n",
       " '3a71dc3c87b11ab0b5c2aa01048a60c8': 30758,\n",
       " '864ad4774f6d7f962208f9c376357c2c': 30759,\n",
       " 'a3b0730da3d23b1ed87f6d203317e173': 30760,\n",
       " 'bdb50c21ba0a6655f1129a0c03675acf': 30761,\n",
       " 'f59dafae3e9da3c05830210e177b92b7': 30762,\n",
       " '893ecff4c2603377d655a0dce0f011fc': 30763,\n",
       " '8ec78504522d2eb22271982b9830aebf': 30764,\n",
       " '176167fa99c178b8b776a2ee63639258': 30765,\n",
       " '049b268651f5e1354206cea2b27d8662': 30766,\n",
       " 'a7f0cebe0f66d2a36a56bdcc5c206805': 30767,\n",
       " '5eac6372426c99ff258a8bcc359d84cc': 30768,\n",
       " '11bc7070cf9e304769eb8c1d284c7df8': 30769,\n",
       " '84b0a30ac53d347bef6c231f79a45a5b': 30770,\n",
       " '02d8c35eba673447fe373c7bd37fa722': 30771,\n",
       " '0dac7bc950a83e2506a16dd9e9d78e7f': 30772,\n",
       " '8fc1b10c16691adad8be421860613262': 30773,\n",
       " '8d49ff8870b08aeaa203b503d798a7d4': 30774,\n",
       " '170037db4b8e67cd01afdfa60c44e8b9': 30775,\n",
       " '86452f07f9b40531719618ad83c37952': 30776,\n",
       " '728feadc9ddae5b465a1bc3ece4ebbbb': 30777,\n",
       " '8968d75253dc93b0a39e8e007f83cd51': 30778,\n",
       " '33d7f32cda66a3eee1a38084bc4747c2': 30779,\n",
       " '5bf1818c963f0405fd89ac7bf9073d77': 30780,\n",
       " '4a57a8f9fcf40820888facfb7646e74f': 30781,\n",
       " 'd5b39e8ef85802412caeeea172a0f81f': 30782,\n",
       " '01c0523218455ae5cfba4ae7a80f72fc': 30783,\n",
       " 'a8146e670ef40f48c57155d67dea2dcd': 30784,\n",
       " 'd75a89d248ef9d9948620d96b74fa9c5': 30785,\n",
       " '9689d8c24ab42a3154bc52fbb6b168a5': 30786,\n",
       " '5852a6dbb0a6d57bbb00123fa64b7ffd': 30787,\n",
       " 'b666e0ea09bf59d19917890354429ac5': 30788,\n",
       " '76beda5c667d608491443152da2735a5': 30789,\n",
       " 'c06f517e3c3c80cc207303a702721abc': 30790,\n",
       " 'a6d251b6637e90090c48fcb9b333383f': 30791,\n",
       " 'b91069598ffd5e4edf57ce70191fe4f9': 30792,\n",
       " 'f57e5657c552931ab6b88aec50cf3c9f': 30793,\n",
       " '5c3cbe829266f698820f55e4b74fe672': 30794,\n",
       " 'd978bfc795b8f0dc76b5c974c355cef6': 30795,\n",
       " 'ddff578ac1046b260b961c70f786fb9a': 30796,\n",
       " '09a4d56b99d2687b737361b71a90d305': 30797,\n",
       " 'bbcbd4ff991d31fafac6b48258ea424a': 30798,\n",
       " '253830e2f879888bbe2ae2eec5bfdf96': 30799,\n",
       " 'de7492927418e5aa11491edc28a601d3': 30800,\n",
       " '76e987213950ba1f46c3930f6a44b157': 30801,\n",
       " 'a3b488f0d072812de9dc68902de77c18': 30802,\n",
       " 'a3f6e2225c715ebc51ae97dc19fb7067': 30803,\n",
       " '15806591a36ef4a2402087b8ab4f1054': 30804,\n",
       " '7f9ba021e70b1423f461d7415955b4cc': 30805,\n",
       " '3328b72f631a0b9dcd3acd0883310f9e': 30806,\n",
       " 'd05332eb99062b323b89490043f489d5': 30807,\n",
       " '7dea68f6058078d75677a46955a95595': 30808,\n",
       " '2917713397f8771d64b1acae5018d0d8': 30809,\n",
       " '7db7cf0d8ac46686fac4f9223dbfb401': 30810,\n",
       " 'a27e1d4711a4d555f7daec5d68998d45': 30811,\n",
       " '86929919d6e14994e8f34f382749942e': 30812,\n",
       " 'b5486f12da0b0783ff9fd8d78d56daa4': 30813,\n",
       " 'bfc6b3362a9fb8f57ff8287af15d5871': 30814,\n",
       " 'ce33e8bcc805b998b166d1f3949aff4a': 30815,\n",
       " 'd395870efb975248709cfedc12c488e0': 30816,\n",
       " 'ce6fa3516375505e0d6fa0ba1da9cf5c': 30817,\n",
       " '0a2e1176694f09895581cc1a0bfe6c3a': 30818,\n",
       " '3ac5a29d49b53ac3af31bb8470567134': 30819,\n",
       " '813b9b4d8abea89fff2ea1ef9f6bbe40': 30820,\n",
       " 'f483cde154ec9d46f52be4f3a81009ef': 30821,\n",
       " '7fa112fa699f90328954b6b539c58985': 30822,\n",
       " 'fb3f68279959ba2476f381d695483c10': 30823,\n",
       " 'ced38cfbf0b92ed0a3f00b188c89b88f': 30824,\n",
       " '010a38cbb5968d35ff1b0686b8ceac62': 30825,\n",
       " '61cf81e66e1536b6da29282a77102c16': 30826,\n",
       " 'a4908b343aa2767d732478820f332413': 30827,\n",
       " 'b87ea8b5647e8ee7f8b061710b4ab5e4': 30828,\n",
       " '80ca3c40d4288ff0f0a64cf84b9fd86a': 30829,\n",
       " '4dc232b4e54a921f1dd40dfb74315b91': 30830,\n",
       " 'b837a1ad211c1b69bc2baa799542a817': 30831,\n",
       " '4a95bd73f89e9f39bfe52a9b4e3a5d14': 30832,\n",
       " '2c31d70575b7269cce27b287e78cc735': 30833,\n",
       " '26fc04925c9506843d2bac1037fee297': 30834,\n",
       " '19348375e73668b8e249587a0bca2e24': 30835,\n",
       " 'bb4916f260f110ca4d90af0fb97c5dba': 30836,\n",
       " '3264f0ada0086fd5003ce63575625780': 30837,\n",
       " '249251054444b833e7df8dc64dbb440a': 30838,\n",
       " '1609899714bd36aa38ba5c95f2fe8a0e': 30839,\n",
       " 'd70d3c5d2ec9eb505d7e3f6c1bfdd727': 30840,\n",
       " 'ec93cda56bca84a6d0917ec9d1a3e14e': 30841,\n",
       " '25db917c6364f469e92ec85b59fa6e48': 30842,\n",
       " '29fa72d21b38a605c8a9c31c28b4d8fe': 30843,\n",
       " 'ec450063cf3cd73fc0757132b1e72976': 30844,\n",
       " '6393fa9c278cbf1f5c02578ce0265bff': 30845,\n",
       " 'a268fa517207e1e929501de2346a699c': 30846,\n",
       " 'db311e558ad1489f63c7ae14c19a0765': 30847,\n",
       " '7a0c934eb5dc09d66a744b6a177480f8': 30848,\n",
       " 'caaf1b911ae81ffe02c0e71fa3e09c22': 30849,\n",
       " 'b0a9eaa6b9f906a896dc31fb0f05cad3': 30850,\n",
       " '6cbbbe1b6bbecabab80e5732ff4568a9': 30851,\n",
       " '5ab0906f36e67364b5c5766194ddcd35': 30852,\n",
       " '09ecdb3d628bed265c1250eca848bfaa': 30853,\n",
       " '0f79f774e9372843481cba269c49892e': 30854,\n",
       " '370ecf3828ca7c4f44f82f945b0d2324': 30855,\n",
       " '9bf2bb84263fd7a5500c11b71fff48c0': 30856,\n",
       " 'e756f52bb65997cce4d42dd6e35a4940': 30857,\n",
       " '43582329eabe8a078284e12bfe2158e2': 30858,\n",
       " 'a29b0d1fe0f6eec2fd0f20fd3c84be39': 30859,\n",
       " 'dc40935b4cd332740a69f49098297a3c': 30860,\n",
       " '40172a0d5ba5cc37df5193654f74e9f0': 30861,\n",
       " 'ca2e70d31ee984c294c3e5296889de77': 30862,\n",
       " 'db0676647b61155e0b040f16dbe966fd': 30863,\n",
       " '08557c9f88b18fe41988d1f84bedb77f': 30864,\n",
       " 'cc512974d253e5c374c45ddf86cac14e': 30865,\n",
       " '25cadc6a96730d218be70daef302a31c': 30866,\n",
       " 'd4431fe59baa93c74997a0765de2a194': 30867,\n",
       " '7badacb293df5fedc093099389213d6a': 30868,\n",
       " '16bdb1f8b93653f381c254b6b86b9eaf': 30869,\n",
       " 'e802a1e74d0a2edbf0972e844283f08d': 30870,\n",
       " 'e7b2a040e6e3ee58f08456b7962c8df5': 30871,\n",
       " 'ba643ee9fb44cb7373fb7bdf86ea63c1': 30872,\n",
       " '82594cd68596c63bf9ed99c6175b8f6f': 30873,\n",
       " 'ea6649e0cfb6ab1b4e2f9709853521c8': 30874,\n",
       " '9f5f6b921c5ff3b4c95ae01d2d875bd7': 30875,\n",
       " 'b6b8deedd2c3b1b854dc00a17ad8937e': 30876,\n",
       " 'c5e78c65cb698d47d525066a78f14e12': 30877,\n",
       " 'b6c59f6236dce6e2d04386c2ee7f5773': 30878,\n",
       " '80fdddba216ab1332254b6d4ecfedfcd': 30879,\n",
       " '4c3087ac245e4b6cfcc771776800be5b': 30880,\n",
       " '44258fa90e36068a1ad9108341e93882': 30881,\n",
       " 'ef85515cb1bc65fb5f90ab815b8ffa74': 30882,\n",
       " '011c5e57c8ee91b0badf535366754fe2': 30883,\n",
       " '4771e4d1c2dcf869ef73826f99f7d982': 30884,\n",
       " '07ad52829e3153accc48b0959ea4cc80': 30885,\n",
       " 'fd186ae08a2405e8a737d92f6326c932': 30886,\n",
       " 'bbc3bc47af021beec99ab651e30606b9': 30887,\n",
       " 'dc47b3a42cfe4e748893f4c26e0cf21a': 30888,\n",
       " 'd8a84e96e06c9e0b813740961d49c420': 30889,\n",
       " 'a33fa2d860733cdd6f54cf4de92715e3': 30890,\n",
       " 'ad5c9c980c59d4c551edc05e97711649': 30891,\n",
       " '9718e0329ae868a2b61d4f5ef8fbb62c': 30892,\n",
       " 'cb894922b2f93a8305b8059fc1d8a1ee': 30893,\n",
       " 'c39e40fd1cd6fb5b3b39f285dd821262': 30894,\n",
       " 'b96c7ca66b39aacaf38f3d08d2769fc3': 30895,\n",
       " 'd910ceca48ae1c5670204902d95ff212': 30896,\n",
       " 'f534e3f8b3d13a828685f8d832c14ff1': 30897,\n",
       " '8019ce476c9436e91f083647e8c44fff': 30898,\n",
       " '2034ba78b1ed745043c05eea85acf1a0': 30899,\n",
       " '405635542842554143884b4db0863362': 30900,\n",
       " '22cb90bc77636c9e0cbf76a2c156e98a': 30901,\n",
       " 'ddfebe347aa3ca1d937bbd574e418924': 30902,\n",
       " 'f1cb1686efbfd9510342feb38c8c1601': 30903,\n",
       " '2fa01929779c4707effd35e4f0295e3c': 30904,\n",
       " 'a032a566ca4a19d71e1a0e966ab6d349': 30905,\n",
       " '6122a7979f0108f3e66040c25fe09ceb': 30906,\n",
       " 'd91f87766056ab5b824f09d168134d6f': 30907,\n",
       " 'f2dbb91c937cf926f360e96413e2b91f': 30908,\n",
       " 'b35217afe91dbf59acdee0dca76fcf62': 30909,\n",
       " 'a43a3ceb05bee894c137e34552725c90': 30910,\n",
       " '7f7d627bd8d4856f5f51ec08dda76a6c': 30911,\n",
       " '2f4c396894ea05b5adcbeb2bc62404c9': 30912,\n",
       " '7b1674e7356e9983a0e46d88e6f63785': 30913,\n",
       " 'a66f3047639c2bcc252079c7a6fa3113': 30914,\n",
       " '8a90ce118e60b0a214feb97077133a27': 30915,\n",
       " '47de333b91a7590d631f7cc8c2140a47': 30916,\n",
       " 'c51deacdba8f56e1c88dc5b000d02020': 30917,\n",
       " 'db9b172007fc27925379b33642f0bed5': 30918,\n",
       " '8bda52e7e207c6f4ec6e49835955cd7c': 30919,\n",
       " 'd679f02aea09191f06538c21c28aa3fa': 30920,\n",
       " '1287f38f4c235b74df99c06ba262997e': 30921,\n",
       " 'beaaabc25461dcd461c529364011fca7': 30922,\n",
       " '0418ef7166d8508900dc4cef3acd444f': 30923,\n",
       " 'b864b6aa1ce48229c533316680747b75': 30924,\n",
       " '9f0897cccea3d4c82ef1c29a307c53e6': 30925,\n",
       " '63357b54f3994e590b1874e3c192023a': 30926,\n",
       " '524d38fe1d28468e9d8a589fec84a5c4': 30927,\n",
       " 'db4e9c5cc4f0603935b5dfca47f490f7': 30928,\n",
       " '9aa14aedaed071baa7a0b44d90357d65': 30929,\n",
       " 'e08263995ef8ea76845845b83f9deeec': 30930,\n",
       " '916677cd11ba1a213e0a0315045483ca': 30931,\n",
       " 'b197c1f82fa96d5bcbfaf2fc5d0d3939': 30932,\n",
       " 'b39bbe3f108c465b6d363d3e58e72ace': 30933,\n",
       " '796c7bbbf5948b8fbe3e8f682d4838f3': 30934,\n",
       " 'f6138533acd93af43249037a7dbd510f': 30935,\n",
       " 'c5b2e901bdb16906c9d8c319dfbab2e5': 30936,\n",
       " '7f4f64e70965d98b42e7a4c697cfc01e': 30937,\n",
       " '8cfe6057e6ebbafa2bb8ce0888ddb1a7': 30938,\n",
       " '3e38349f286807fa50781bf782bfe39f': 30939,\n",
       " 'a2291ec2822055409269fab2f3e0d5d5': 30940,\n",
       " 'fc2fac2d86eabbd0f5df08a13d1e96e3': 30941,\n",
       " 'a166253ff3378068335dfec4289509f3': 30942,\n",
       " 'e0e028550d5244080762db7801875ea0': 30943,\n",
       " '2ddaa8f14d7ab21c27aae5179eaf953f': 30944,\n",
       " '2f667094a89966fc0ede1d566210c6bb': 30945,\n",
       " '91fbd5b8963dcec072a253026b83c4a5': 30946,\n",
       " '9555b1f463d2f19d9b72104d55cbf3fe': 30947,\n",
       " 'ba666f3cd062a8288a6ce40b2d9d06f5': 30948,\n",
       " '9b478d72674cf5bb53fb73c0b39ea0df': 30949,\n",
       " 'f4c082a970e3f8ca94ad16519c4aea1f': 30950,\n",
       " '347edd2143b41f4a31ae309c7a65415a': 30951,\n",
       " 'a68239213fc3a8dcacc27dc12d995ce5': 30952,\n",
       " '0f91fc27f96a1aef8c598d83ddee2313': 30953,\n",
       " 'd1f54b92527d648ba7ef92ae9becf548': 30954,\n",
       " '86e659f19c78cc879b8ea4048ddeb21b': 30955,\n",
       " 'c432f7f37ef99db682bb67ab7a8d70c1': 30956,\n",
       " '00d6c0346dca36e49b57d0b12d618dca': 30957,\n",
       " '2f42ea9d130ea94e93dd1f6d8bcd38b8': 30958,\n",
       " 'fe7339b41a8b09f7ae15675d04dd6f70': 30959,\n",
       " 'a6d6fd7df215f6775e50476c28cc8c87': 30960,\n",
       " '1394fbeff212dc7931e0529a0787397c': 30961,\n",
       " 'a4f984d3f089a6020fa598a093f78071': 30962,\n",
       " '797b52394109942ac5a37d46ef0401f1': 30963,\n",
       " '0d23f6b33050ddf671171ff29531033d': 30964,\n",
       " '945abb2f9ec91622aa3eeaeddd4954c8': 30965,\n",
       " 'a0c2ecc4280147dc4da13bc067527bc0': 30966,\n",
       " '0810de3a8cf65f5bbc27fb499862751b': 30967,\n",
       " '07e594c948184fd023387064a7820c54': 30968,\n",
       " '952e687373ef3c1c8b5fee177bc8b1c1': 30969,\n",
       " '1cc27ca7778b04ae9c62e8486865ce8f': 30970,\n",
       " '7ba5ccdef0ee2f5be7c6fbbbd3fa3279': 30971,\n",
       " '2d3aaee3f1a9a22085ee432e351cb290': 30972,\n",
       " '932423535915353f2c409cbf4f806fa9': 30973,\n",
       " '340959239305e8c27e4ea544cd1a7730': 30974,\n",
       " '7de86c9346a5fde27e8d9929ef9755bf': 30975,\n",
       " '4913aee7df69c78f73682d7a752662ea': 30976,\n",
       " '13e674c018a2de425043c442cef54ed9': 30977,\n",
       " '32537d3b9e2d37ea99adf77f7a27c6af': 30978,\n",
       " '089697e95a9a02a6f153e3a76460b94e': 30979,\n",
       " '745dca1aa10484af1ae7fa35a3589187': 30980,\n",
       " '187534bf3aaa4cd01de33f4c46dd0630': 30981,\n",
       " '38c2e3de02aaae78d04410f27eca941d': 30982,\n",
       " 'abedfcf754e7181f0e059a9ed746fd8a': 30983,\n",
       " 'b2fe6f0d4c914764a7be7ddc1f6a089e': 30984,\n",
       " '435c4950869386f2c2f8d9c86776f873': 30985,\n",
       " 'b9035f853b90fbff88f22dc1904b4845': 30986,\n",
       " '8f2648e4fa5a2733f923ba8303801cd0': 30987,\n",
       " '1c1e734c0481015da3501aead859ba8f': 30988,\n",
       " 'def17db6ccfd33926d0ab8a45dea428f': 30989,\n",
       " 'b1c438cf318f9e249e14ae20c910f1ec': 30990,\n",
       " '2b2928d611daadd1a708c1e1e312359f': 30991,\n",
       " '963996bc11c41fc742f9560ffd09f5e5': 30992,\n",
       " '6058a24711ada32bfd7426e0b36acf0f': 30993,\n",
       " '3aaf02981dcc4fa993a7a2c8326ef1d8': 30994,\n",
       " '29ae3e911bc7b549ddb36123268b3aed': 30995,\n",
       " 'bd1c9b29b04b6bb046f911cc047baef9': 30996,\n",
       " 'b2039dc0f6ed2822ae5116960487342a': 30997,\n",
       " 'a9b1fb917e21764d53dd00cfabb3c3f5': 30998,\n",
       " '080d1bda2efab3d4fc6abcebb9f5ec74': 30999,\n",
       " '67bf872a9bb824aed378b32a40b0f0f1': 31000,\n",
       " ...}"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "customer_tel_to_id_dict = df_customer.to_dict()['id']\n",
    "customer_tel_to_id_dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'张艳': 1,\n",
       " '李勇': 2,\n",
       " '王平': 3,\n",
       " '李强': 4,\n",
       " '王芳': 5,\n",
       " '王军': 6,\n",
       " '李伟': 7,\n",
       " '刘洋': 8,\n",
       " '张勇': 9,\n",
       " '王勇': 10,\n",
       " '张秀英': 11,\n",
       " '王强': 12,\n",
       " '李军': 13,\n",
       " '王娟': 14,\n",
       " '张涛': 15,\n",
       " '刘芳': 16,\n",
       " '张杰': 17,\n",
       " '张静': 18,\n",
       " '王丽': 19,\n",
       " '王艳': 20,\n",
       " '张磊': 21,\n",
       " '王超': 22,\n",
       " '王杰': 23,\n",
       " '张丽': 24,\n",
       " '李静': 25,\n",
       " '王敏': 26,\n",
       " '王伟': 27,\n",
       " '王秀兰': 28,\n",
       " '李敏': 29,\n",
       " '张敏': 30}"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_salesstaff = pd.read_sql(\n",
    "    'select id,name from salesstaff;',\n",
    "    conn2\n",
    ")\n",
    "#将name的值设为index,因为它是我们想要转化为key的内容。后面to_dict()时index会变成key。\n",
    "df_salesstaff.index = df_salesstaff['name'].values\n",
    "salesstaff_name_to_id_dict = df_salesstaff.to_dict()['id']\n",
    "salesstaff_name_to_id_dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'继续跟单': 1, '非意向用户': 2, '直接签单成功': 3, '跟单失败': 4, '跟单成功': 5, '跟踪超时': 6}"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "df_status = pd.read_sql(\n",
    "    'select id,content from status;',\n",
    "    conn2\n",
    ")\n",
    "df_status.index = df_status['content'].values\n",
    "status_content_to_id_dict = df_status.to_dict()['id']\n",
    "status_content_to_id_dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tel</th>\n",
       "      <th>salesstaff_name</th>\n",
       "      <th>status</th>\n",
       "      <th>createDate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>37409</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>49304</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>57643</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>40895</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>33678</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     tel  salesstaff_name  status  createDate\n",
       "0  37409                8       1  2020-06-01\n",
       "1  49304                8       2  2020-06-01\n",
       "2  57643                8       2  2020-06-01\n",
       "3  40895                8       1  2020-06-01\n",
       "4  33678                8       2  2020-06-01"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 利用前面的字典，变更外键（将表中的原文替换为相应的代码）\n",
    "df_mission['tel'] = df_mission['tel'].apply(\n",
    "    lambda tel:customer_tel_to_id_dict[tel]\n",
    ")\n",
    "df_mission['salesstaff_name'] = df_mission['salesstaff_name'].apply(\n",
    "    lambda name:salesstaff_name_to_id_dict[name]\n",
    ")\n",
    "df_mission['status'] = df_mission['status'].apply(\n",
    "    lambda status:status_content_to_id_dict[status]\n",
    ")\n",
    "df_mission.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>customer_id</th>\n",
       "      <th>salesstaff_id</th>\n",
       "      <th>status_id</th>\n",
       "      <th>createDate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>37409</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>49304</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>57643</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>40895</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>33678</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>2020-06-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   customer_id  salesstaff_id  status_id  createDate\n",
       "0        37409              8          1  2020-06-01\n",
       "1        49304              8          2  2020-06-01\n",
       "2        57643              8          2  2020-06-01\n",
       "3        40895              8          1  2020-06-01\n",
       "4        33678              8          2  2020-06-01"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 修改列名\n",
    "df_mission.columns = ['customer_id','salesstaff_id','status_id','createDate']\n",
    "df_mission.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_mission.to_sql('mission',conn2,index=False,if_exists='append')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#问题：connection1和2的使用场景有何区别？为什么我把前面使用conn2的地方替换成conn1就出现了空白的结果呢？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
